extern这个关键字,用于引用一个在外部定义的变量。比如你在a文件里定义了int i = 10;在b文件里要使用这个i变量,只需要一句extern int i;就可以了。
最近在一个地方定义了一个const int类型的变量,在另一个地方引用它,用extern const int结果老是报未定义的错误。
经过一番琢磨,查找到了问题的原因。原来在c++中,如果要对const修饰的变量外部引用,就需要在定义它的时候前面加extern。这个规则在c++里需要,而在c文件里不需要。我在一个.c文件里定义const型的变量,没有加extern,另一个.c文件里引用该变量则不会报未定义的错误。