打印

新手 编译警告:multipe public defintions

[复制链接]
3374|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lk0623|  楼主 | 2010-12-16 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xjycug| | 2010-12-16 20:32 | 只看该作者
可能在头文件声明中,有显性赋值。
比如在*.c的的文件中有变量定义:
unsigned char AAA = 0;
但是在头文件声明时如果写成
extern unsigned char AAA = 0;
则会报multipe public defintions警告
声明应该写成extern unsigned char AAA;

使用特权

评论回复
板凳
lk0623|  楼主 | 2010-12-17 19:16 | 只看该作者
嗯 意思是说.h里面不能给变量赋值是吗?
难怪了, 哈哈知道了,谢谢了

使用特权

评论回复
地板
coody| | 2010-12-17 20:43 | 只看该作者
多重定义了,可以用条件编译等手段避免多重包含等等

使用特权

评论回复
5
lk0623|  楼主 | 2010-12-17 20:58 | 只看该作者
根据2楼的提示,进行了修改,警告变为: UNCALLED SEGMENT, TGNERED FOR OVERLAY PROCESS

使用特权

评论回复
6
lk0623|  楼主 | 2010-12-17 21:01 | 只看该作者
和unresolved external symbol

使用特权

评论回复
7
xjycug| | 2010-12-17 21:06 | 只看该作者
把你程序发上来吧,呵呵。

使用特权

评论回复
8
xjycug| | 2010-12-17 21:12 | 只看该作者
那是原来第二个问题本身没有找到。应该第一个问题给解决了吧

使用特权

评论回复
9
xjycug| | 2010-12-17 21:13 | 只看该作者
应该你定义了一个函数,而且也声明了这个函数,但是程序中没有调用这个函数吧

使用特权

评论回复
10
原野之狼| | 2010-12-18 00:52 | 只看该作者
变量的定义不要放在头文件里
头文件需要用宏来控制以避免多重包含。

使用特权

评论回复
11
lk0623|  楼主 | 2010-12-19 21:17 | 只看该作者
但是二个.c的文件都要用到这个变量,放在.h里不 更方便一点吗?

使用特权

评论回复
12
原野之狼| | 2010-12-20 00:28 | 只看该作者
h文件的功能并不是用于这里
HWM老师前几天回过一贴 详细地说了这个问题 翻翻看吧

使用特权

评论回复
13
shell.albert| | 2010-12-20 07:07 | 只看该作者
multipe public defintions
多重公共定义,就是说有个东西定义了多次.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

109

帖子

0

粉丝