C2070

来源:互联网 发布:c语言写入txt文件函数 编辑:程序博客网 时间:2024/05/15 01:25

我在 a.cpp 文件中定义一个数组
int a[] = {1,2,3};
a.h 文件中声明外部引用这个数组
extern int a[];
在 b.cpp 文件中引入 a.h 文件,并做如下代码
int nSize = sizeof(a) / sizeof(a[0]);
上面的代码编译错误 C2070.换句话说无法在 b.cpp 中直接取得数组 a 的大小,只好在 a.cpp,a.h 文件中实现,声明一个函数来取得数组 a 的大小了。如在 a.cpp 中实现

int GetArraySize(void)

{

    return sizeof(a) / sizeof(a[0]);

}

在 a.h 中声明

int GetArraySize(void);

这样在 b.cpp 中就可以调用 GetArraySize 函数了。
但如果改成
int a[10] = {1, 2, 3, 4}; 的形式就没有问题了
extern int a[10];

 

原创粉丝点击