最冤枉的关键字----sizeof
2016-03-13 11:28
211 查看
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 在
计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,
咱也别偷这个懒,乖乖的写上括号,继续装作一个“函数”,做一个“披着函数皮的关键字”。
做我的关键字,让人家认为是函数去吧。
借助编译器确定它的身份。看下面的例子:
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 在
计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,
咱也别偷这个懒,乖乖的写上括号,继续装作一个“函数”,做一个“披着函数皮的关键字”。
做我的关键字,让人家认为是函数去吧。
相关文章推荐
- 光流Optical Flow介绍与OpenCV实现
- 寻找 最小的k个数 线性选择算法 平均时间复杂度 O(n)
- 向上转型与向下转型
- mysql 用户管理和权限设置(转)
- 无刷新评论
- OpenCV学习笔记_cvCircle, cvAnd, cvOr, cvSetIdentity使用
- APP安全测评checklist
- 约瑟夫环问题
- MySQL存储引擎 MyISAM与InnoDB区别
- ios-基础之【8】-NSDictionary
- Codeforces Round #345 (Div. 2) A. Joysticks
- NYOJ 序列置换
- 剑指offer 顺时针打印矩阵
- makefile
- 双向链表中的交换节点
- Android性能测试工具 之Emmagee
- “进度条”博客——第二周
- 在windows导入mysql的示例employees数据库
- Servlet学习笔记
- Linux下gcc编译器的使用