欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

c语言施用上的区别求证

更新时间: 2014-01-05 03:20:00 责任编辑: Author_N1

 

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驱动编写,请不吝赐教啊。

--参考方法--
建议 LZ 你变量的定义不要放在头文件里,容易引起重复定义的问题
--参考方法--
编译器区别吧
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:20:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20932/
本文WWW.DOC100.NET DOC100.NET版权所有。