为什么sizeof取不到extern的数组大小
2013-09-08 20:53
666 查看
今天用sizeof计算一个extern之后的数组的大小,发现总是0,在编译的时候也已经给报错了,但是就是不知道为什么,最后才恍然大悟。
首先sizeof其实在编译期间已经觉得了其计算的大小,extern之后的数组在编译器期间其实只是一个符号而已,不代表任何意义,只有在连接的时候知道了它的地址才会和正在数组的定义的地方连接起来,所以在vc上做如下的操作
externint a[];
sizeof(a);
首先编译器会给你警告,在运行期间去看sizeof(a)的值总是是0;
有一本书叫做《你必须知道的495个C语言问题》有空看一看!
首先sizeof其实在编译期间已经觉得了其计算的大小,extern之后的数组在编译器期间其实只是一个符号而已,不代表任何意义,只有在连接的时候知道了它的地址才会和正在数组的定义的地方连接起来,所以在vc上做如下的操作
externint a[];
sizeof(a);
首先编译器会给你警告,在运行期间去看sizeof(a)的值总是是0;
有一本书叫做《你必须知道的495个C语言问题》有空看一看!
相关文章推荐
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- 数组名是指针,为什么sizeof(数组名)还是数组的大小
- 当数组是函数的参数时, 为什么sizeof 不能正确报告数组的大小?
- 形参中的数组,实际是一个指针。sizeof为4,其他地方为数组大小
- 你不知道的c语言之为什么数组的大小不能是变量
- 数组的大小及定义sizeof和strlen
- sizeof()为什么不能得到指针指向内容的大小
- strlen /sizeof/ 0,'\0','0'中的陷阱+补充字符串字符数与数组大小相等
- 动态及静态数组大小,strlen()函数与sizeof()c操作符
- 为什么一些结构中尾部数组的大小是1?
- sizeof()计算数组结构体类大小长度
- 数组作为函数的参数时,不能通过sizeof运算符得到该数组的大小
- C++中使用 sizeof 函数取得数组大小
- sizeof()函数求类型所占字节大小-指针,数组
- sizeof为什么不能计算被动态分配的数组
- C/C++中求字符串数组的大小---sizeof,strlen,string,length()
- sizeof为什么不能计算被动态分配的数组
- 《C++笔记》 Part6 浅析extern的作用比较分析与数组相关的sizeof和strlen
- 学习心得——数组作为函数参数后sizeof获取不到数组在内存中所占字节数的问题