__builtin_constant_p(x) (转帖
2024-09-02 21:57:01
本文转载自:http://blog.chinaunix.net/uid-29254195-id-3977753.html
gcc的内建函数,当x为常数时返回1, x为变量时返回0. 不过这并不完全准确。
linux kernel的代码中经常有这样的代码:
if (__builtin_constant_p(x)) {
do1;
} else {
do2;
}
可以认为这个函数的求值在编译时就完成了。从而外面的条件跳转语句的两个分支,只有其中一个会出现在目标代码中。
准确的定义应该是:如果x的值在编译时能确定,那么该函数返回值为1.
例如,int len = sizeof(struct ...);紧接着的__builtin_constant_p(len)返回值就是1,尽管len是变量。
最新文章
- 机器学习笔记----四大降维方法之PCA(内带python及matlab实现)
- GCC常用命令行一览表
- ASP.NET MVC 3和Razor中的@helper 语法
- bzoj1412
- 【译】 AWK教程指南 5AWK中的数组
- Asp.net Gridview导出Excel
- [原博客] POJ 2505 A multiplication game 组合游戏
- Hibernate入门(三)
- 从Dynamics CRM2011到Dynamics CRM2016的升级之路
- HTTP的一些基本概念
- _string
- C# Note28: Dispatcher类
- HDU - 3521 An easy Problem(矩阵快速幂)
- Android打造完美的刮刮乐效果控件
- node加密解密 crytpo
- java注解Annotation的使用实例
- android.graphics(2) - Path, drawPath, moveTo, lineTo, addRect, addCircle, addOval, addArc, drawText, drawTextOnPath
- HDU6299-2018ACM暑假多校联合训练1002-Balanced Sequence
- springboot 返回json格式数据的时间格式配置
- MySQL 第五天