问在一个源文件中,我定义了char a[6],而在另一个文件中,我声明了extern char *a。为什么它不起作用?
答在一个源文件中,您定义了一个字符数组,而在另一个文件中,您声明了一个指向字符的指针。声明extern char *a并没有声明一个数组,因此与实际定义不匹配。类型“指向 T 的指针”与“T 的数组”是不同的。请使用extern char a[].
参考文献:ISO Sec. 6.5.4.2
CT&P Sec. 3.3 pp. 33-4, Sec. 4.5 pp. 64-5