【网络收集】keil中C51头文件问题
(2011-10-21 20:00:26)
标签:
头文件c语言数码管函数编译器it |
分类: electronic |
一直希望自己编写一个C语言头文件,把自己常用的一些函数放进去。上网看了很多文章,我所看到文章做法和一般C语言头文件写法基本一样,自己学着试了一下,老是不成功。后来去图书馆查书,才知道原来keil的C语言比较特别,引用同一工程其他文件中的函数需要在声明函数前加extern。
以下是一个例子:
//步骤一:建立fc.h
#ifndef FC_H
#define FC_H
#include <reg51.h>
extern void f(void)
#endif
//步骤二:建立fc.c
#include "fc.h"
#include <reg51.h>
//还需要什么头文件自己添加
void f(void)
{
}
步骤三:将fc.h和fc.c放在工程的文件夹里,并在keil中将f.c添加到工程中(右键左边的Source Group n,选择Add file to group 'Source group n'),要用到f()函数的话就include“fC.h”就行了,例如:
#include <reg51.h>
#include "fc.h"
void main()
{
f();
while(1);
}
结果大功告成,成功编译,但是并没有想象中那么实用,例如fc.c中如果定义了函数但没有被引用的话,keil会发出警告,虽然可以编译,但是一大堆警告很烦人,也和容易让人忽视其他很重要警告。我想自己编写头文件主要是适用于大型工程吧。很多人编写各自不同的函数,然后通过头文件的引用把函数给主程序或者其他子程序引用。
C语言(C51)头文件的编写笔记
2010-06-11 20:44
先看如下例子 The language of C 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.//
40us 11.//
50us 12.//
60us 13.//
70us 14.//
80us 15.//
90us 16.//
100us 17.//
200us 18.//
300us 19.//
400us 20.//
500us 21.//
600us 22.//
700us 23.//
800us 24.//
900us 25.//
1ms 26.//
2ms 27.//
3ms 28.//
Xms 29.
30.
31.
32.
33. 34.} The language of C
The language of C
【规则1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。 【规则1-2-2】用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【建议1-2-1】头文件中只存放“声明”而不存放“定义” 在C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却 造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。 【建议1-2-2】不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明
|