编译老是显示重复定义

2019-08-16 23:19发布

1.png 2.png
编译老是显示重复定义,实际上就一个地方定义了,这是为啥



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
heiheihaha
1楼-- · 2019-08-18 19:32
Owen 发表于 2017-7-11 15:05
尽量不要在头文件定义变量。
一般的头文件里用的#ifndef, #define, #endif这几个预编译指令,解决的是一 ...

变成extern后 1.png
lvkanger
2楼-- · 2019-08-18 21:07
heiheihaha 发表于 2017-7-11 15:54
变成extern后

你这extern用的有问题啊!
Owen
3楼-- · 2019-08-19 01:13
heiheihaha 发表于 2017-7-11 15:37
谢谢您,这个变量要是不再头文件中定义,在哪里定义合适啊

定义在源文件中,比如lcd.c。如果你要在其他文件A中使用这个数据变量,可以在A中使用
extern  u8  jiong1[];
另外如果这个数组的值不需要改变的话,可以定义为const
d1z1y2
4楼-- · 2019-08-19 01:52
lcd.c:
……
u8 a[4]={1,2,3,4};
……

lcd.h:
......
extern u8 a[4];
.......
heiheihaha
5楼-- · 2019-08-19 03:50
 精彩回答 2  元偷偷看……
lvkanger
6楼-- · 2019-08-19 08:21
heiheihaha 发表于 2017-7-13 12:40
为啥用extern会出现问题呢

extern 不能赋值!

一周热门 更多>