在嵌入式中,常见要定义一个码表,比如数码管的片选、段选表。我们通常会想到在头文件中定义。但是这样会出现多次包含重复定义的错误。redefination in module...,而且这个错误没有具体的位置,不知道的话很难排除。
正确的做法是在C文件中定义,在头文件中(只能)声明。
比如在led.c中
unsigned char chipselect[]=
{
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f
};
在led.h中,
extern unsigned char chipselect[];