首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

C语言施用上的区别求证

2013-04-20 
C语言使用上的区别求证我以前做过PIC单片机的C语言编程。如下编写是没有问题的:有A.h文件,以及a.c b.c c.c

C语言使用上的区别求证
我以前做过PIC单片机的C语言编程。
如下编写是没有问题的:
有A.h文件,以及a.c b.c c.c三个文件。
在A.h里面这样写:
#ifndef A_HEAD___
#define A_HEAD___
int iTest;
#endif

然后分别在a.c b.c c.c里面写#include "A.h"
之后
分别在a.c里面写 iTest = 1;
分别在b.c里面写 iTest = 2;
分别在c.c里面写 iTest = 3;
这样写都没有问题的。


但是在Linux的驱动代码里面这样写就不行啊,会说iTest重复定义。
要这样写才行:
在A.h里:
#ifndef A_HEAD___
#define A_HEAD___
extern int iTest;
#endif
在a.c b.c c.c的任何一个文件里写:
int iTest;
之后
分别在a.c里面写 iTest = 1;
分别在b.c里面写 iTest = 2;
分别在c.c里面写 iTest = 3;
这样就可以了。

难道这是Linux驱动的C语言特有的吗?求证一下。
刚开始Linux驱动编写,请不吝赐教啊。
C Linux linux驱动
[解决办法]
建议 LZ 你变量的定义不要放在头文件里,容易引起重复定义的问题
[解决办法]
编译器区别吧

热点排行