欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

sizeof 是关键字不是函数!使用sizeof需要注意?

发布时间:2025/6/15 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 sizeof 是关键字不是函数!使用sizeof需要注意? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

sizeof是关键字不是函数,其实就算不知道它是否为32个关键字之一时,我们也可以借助编译器确定它的身份。看下面的例子:
int i=0;
A),sizeof(int); B), sizeof(i);C),sizeof int;D),sizeof i;


毫无疑问, 32 位系统下A), B)的值为4。那C)的呢? D)的呢?
在32 位系统下,通过Visual C++6.0 或任意一编译器调试,我们发现:

D)的结果也为4。咦? sizeof 后面的括号呢?没有括号居然也行, 函数名后面没有括号行吗?由此轻易得出sizeof 绝非函数。

C)编译器么提示出错呢?不是说sizeof是个关键字,其后面的括号可以没有么?那你想想sizeof int 表示什么啊?int前面加一个关键字?类型扩展?明显不正确,我们可以在int 前加unsigned,const等关键字但不能加sizeof。好,记住:sizeof在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,咱也别偷这个懒,乖乖的写上括号,继续装作一个“函数”,做一个“披着函数皮的关键字”。

 

使用sizeof需要注意?

file1.c

int array[ ] = {1,2,3};

file2.c

extern int array[ ]; printf("%d\n",sizeof(array));

在file2.c,sizeof取不到arrary的大小,因为:未指定大小的extern数组是不完全类型,不能对他使用sizeof,sizeof在编译时发生作用,他不能获得定义在另一个文件中的数组大小。

总结

以上是生活随笔为你收集整理的sizeof 是关键字不是函数!使用sizeof需要注意?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。