Extern使用指针而不是数组

时间:2016-01-03 08:47:03

标签: c extern

假设我们有2个文件

1)file1.c

int Appples[10];

2)file2.c

extern int *Appples;

除了我必须独立处理尺寸之外,这种声明是否有任何问题?

2 个答案:

答案 0 :(得分:5)

C FAQs 6.1

中介绍了这一点
  

类型指针指向类型T与类型数组-T不同。使用extern char a []。

虽然this answer更具体地解决了这个问题。最后一点是:数组不是一个指针,你不应该这样对待它。

答案 1 :(得分:1)

将变量声明为:

extern int *Appples;

需要定义为:

int *Appples = <initializer>;

不是:

int Appples[10];

如果您想使用:

定义
int Appples[10];

可以声明为:

extern int Appples[10];

extern int Appples[];