C51:解决ERROR L104: MULTIPLE PUBLIC DEFINITIONS

比如你要写一个模块,fun.c、fun.h
如果你在这个模块里定义一个内部的全局变量(只在模块内是全局的),那么就直接定义和声明在fun.h中即可。
但是如果你需要一个全局变量,在这个模块被其他地方引用的时候也能奏效的话,那么你应该在fun.c中定义,并在fun.h声明即可。无需在其他文件中声明和定义这个变量。

//fun.c
unsigned char leds[8]=0;
//fun.h
extern unsigned char leds[8];  //.h内不能初始化

extern的意思是,我已经在别的文件里定义了,你在这声明一下不要定义就好。

如果只是在模块内使用,还是除了这一的问题的话,那么就定义成静态的。

//fun.h
static unsigned char table[7]={0x3f ,  ... };

你可能感兴趣的:(单片机)