param_check_int的实现解析
来源:互联网 发布:json与xml的区别 编辑:程序博客网 时间:2024/06/16 05:04
param_check_int宏的定义如下:
#define param_check_int(name, p) __param_check(name, p, int)#define __param_check(name, p, type) \ static inline type __always_unused *__check_##name(void) { return(p); }
假如有如下变量定义:
int g_count = 0;
那么执行param_check_int()宏时,有如下展开:
param_check_int(g_count,g_count)--> __param_check(g_count,g_count,int)-->static inline int __always_unused *__check_g_count(void){ return (g_count);}
其中,__always_unused用来防止编译器发出警告(因为定义的函数__check_g_count没有使用)。
分析上面展开结果,可以发现,
1:若g_count的类型与函数__check_g_count的返回值类型不一致,则会产生警告(因此可以实现检查g_count的类型是否为int的检查)。
2:g_count需要在调用param_check_int宏之前定义好,否则函数__check_g_count中的语句:return (g_count),会产生g_count未定义的错误。因此,该宏也可以实现检查变量是否已经定义的功能。
0 0
- param_check_int的实现解析
- Jason解析的实现
- BaseServlet 的实现解析
- Java实现四则运算的解析
- Connection.close()的实现解析
- xlst 实现xml的解析
- nginx subrequest的实现解析
- nginx subrequest的实现解析
- 红黑树的解析与实现
- jBPM4的PVM实现解析
- quartz的schedulerFactory实现解析
- PHP的钩子实现解析
- hashMap的实现原理解析
- LinkedHashMap的实现原理解析
- PHP的钩子实现解析
- quartz的schedulerFactory实现解析
- ViewStub的实现深入解析
- poi实现excel的解析
- 浅谈四种XML文件生成与解析方法
- 全球资本大整合,皓顿斩获千万融资!
- 2.tomcat下安装solr5及数据库索引
- 刚刚开始学java,我的第一个比较好一点的Java程序。ps:只要努力,就会有收获
- Win7下IIS由于扩展配置问题而无法提供请求的页
- param_check_int的实现解析
- 滑雪
- 新添一种字库
- java状态模式
- vi的各种操作快捷键
- Spring面试题
- 微信二维码统计开发实现方案,推广二维码统计开发,带参数二维码开发
- uiautomator API文档
- Python的内存管理