linux中 typecheck的分析
来源:互联网 发布:淘宝拍卖的东西靠谱吗 编辑:程序博客网 时间:2024/05/21 07:22
在kernel 2.6.30 的typecheck.h源码中有如下定义
#define typecheck(type,x) /
({ type __dummy; /
typeof(x) __dummy2; / /* typeof是C语言中的关键字,表示取x的类型 */
(void)(&__dummy == &__dummy2); /
1; /
})
这个有什么作用呢?下面举例来说明
#define time_after(a,b) /
(typecheck(unsigned long, a) && /
typecheck(unsigned long, b) && /
((long)(b) - (long)(a) < 0))
typecheck宏有两个参数,
第一个是一个类型,比如unsigned long,
第二个是一个变量,比如a。
它生成一个unsigned long类型的变量__dummy,
然后利用typeof生成和a同样类型的变量__dummy2,
比较__dummy和__dummy2的地址。
如果它们不是同样类型的指针比较,比如a不是unsigned long,
这时候编译器会有一个警告,让你注意到这个问题。
0 0
- linux中 typecheck的分析
- typecheck
- typecheck()
- typecheck
- linux内核中的typecheck函数
- linux 内核宏定义:#define typecheck(type,x)
- typecheck() 作用
- typecheck()简析
- Linux中miscdevice的分析
- typecheck(type,x) 作用
- typecheck(type,x) 作用
- linux中Netfilter机制的分析
- Linux中PowerPC的中断原理分析
- Linux内核中start_kernel函数的分析
- linux中request_region()函数的分析
- linux中curl指令的简要分析
- linux中bootmem分析
- Linux中IP隧道的分析与建议[转贴]
- Catch That Cow BFS
- 黑马程序员---java 概述
- 【iOS】iOS完整学习路线图
- 三叉神经痛的饭后注意事项
- Introduction to SQLite in Python
- linux中 typecheck的分析
- CSS reset
- 链接
- C# 操作键盘及鼠标
- Cocos2dx 小技巧(一)预定义文件路径
- 【iOS】ArcGIS API For iOS 实现图层显示控制
- 兼容png图标
- Advanced SQLite Usage in Python
- 一步步学习微软InfoPath2010和SP2010--第六章节--发布并提交表单数据(2)--提升栏目