STM32
直播中

张璨

8年用户 204经验值
私信 关注
[问答]

如何才能一次定义include?

在define.h中定义了这两个东西:#define KEY0 PB_IN(0)u16 func_a_tab[]={1,2,4,8,16,32,64,128,256,512};
io.c 中要使用KEY0,那么#include "define.h"而 main.c中用了#indlude "define.h"#include "io.h" 编译时会提示func_a_tab重复定义。
而如果在io.c中不#include "define.h",然后在io.c中再定义一次#define KEY0 PB_IN(0)就可以编译通过。
但我不想分两处来定义#define KEY0 PB_IN(0) ,怎解决呢?谢谢。

回帖(2)

李娜

2019-11-1 08:53:02
你的问题不在KEY0上面,而是在 func_a_tab上面.这个是一个数组,你不能在头文件里面定义.可以在头文件里面申明.
比如在xx.h中:
extern u16 func_a_tab[];
在xx.c中,就定义这个数组如下:
u16 func_a_tab[]={1,2,4,8,16,32,64,128,256,512};
这样就可以在多个.c文件里面使用func这个数组了,只要include"xx.h"即可.
举报

周蓓

2019-11-1 09:06:40
哦。可以了。谢谢你了。:-)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分