如何正确宣布“外部”?

时间:2017-12-06 18:20:05

标签: arrays

如果'char a [10];'在一个文件中定义,'extern char * a;'在另一个文件中声明,则它不起作用。这是对的吗? 声明'extern char * a;'不声明数组,因此 与实际定义不符。

1 个答案:

答案 0 :(得分:1)

正确 - 全局符号的所有声明必须与该符号的定义兼容,否则您将获得可怕的未定义行为。 extern char *a;char a[10];不兼容。

您可以使用extern char a[10];extern char a[];,而这两者都与char a[10];兼容。