C/c++中 数组全局变量的定义声明 与 引用声明

数组声明一次,所有的 定义声明 有切仅有一次!

别人遇到的问题如下:

在声明定义时,定义数组如下:

int G_glob[100];

在其他文件引用时声明如下:

int *G_glob;

这样的操作,在vc中,是可以编译通过的,这种情况大家都比较模糊并且需要注意,数组与指针类似,但并不等于说对数组的声明起变量就是指针。上面所说的的程序在运行时发现了问题,在引用声明的那个文件中,使用这个指针时总是提示内存访问错误,原来我们的连接程序并不把指针与数组等同,连接时,也不把他们当做同一个定义,而是认为是不相关的两个定义,当然会出现错误。正确的使用方法是在引用声明中声明如下:

int G_glob[100];

最好是加上 引用申明标识:

extern int G_glob[100];

更好的是:

另外需要说明的是,在引用声明中由于不需要涉及到内存分配,可以简化如下,这样在需要对全局变量的长度进行修改时,不用把所有的引用声明也全部修改了。

extern int G_glob[];

本来看到是说有引用链接的,结果最后没有我这里也只好结束了。

来自:janders 只知其名不知居。

原文链接: https://www.cnblogs.com/yyx001000000001010101100101/p/5184523.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/228482

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午1:59
下一篇 2023年2月13日 下午1:59

相关推荐