头文件中的数组声明

时间:2018-12-17 23:12:24

标签: c arrays header

我看过一个代码,其中在头文件中声明了一个char数组,并且头文件包含在两个文件中。

// header
char lookup[255];

我认为两个相同名称的数组定义应该存在一些链接器错误,应该对其进行声明并将其定义在.c文件中,并将extern放在标题中。

2 个答案:

答案 0 :(得分:1)

请勿将任何实际数据或代码放入头文件中。有一些例外,例如静态内联函数,但根据经验:在头文件中,仅声明和类型;在.c文件中,定义

答案 1 :(得分:0)

编译器将独立编译每个.c文件,而不知道该文件已经包含在另一个文件中。但是,一旦尝试将编译的目标文件链接在一起,就会出现链接器错误。

使用gcc,可以完成以下工作:

reduce

但是链接失败:

gcc -c include1.cpp include2.cpp