http://blog.csdn.net/chenmeimei_8899/article/details/5640359
今天用sizeof计算一个extern之后的数字的大小,发现总是0,在编译的时候也已经给报错了,但是就是不知道为什么,最后才恍然大悟。
首先sizeof其实在编译期间已经计算了大小;extern之后的数组在编译器期间其实只是一个符号而已,不代表任何意义,只有在连接的时候知道了它的地址才会和正在数组的定义的地方连接起来,所以在vc上做如下的操作
extern int a[];
sizeof(a);
首先编译器会给你警告,在运行期间去看sizeof(a)的值总是是0;