all
记录一些c语言宏相关的高级用法
可变参数宏
c语言内置函数
1.typeof
2.__builtin_choose_expr
语法格式
type __builtin_choose_expr (const_exp, exp1, exp2)
解释
这个函数的第一个参数必须是常量表达式,它属于编译时行为,而非运行时行为,跟sizeof和typeof一样。这个函数是一个谓词函数,如果const_expr的结果非0,那么生成exp1,且返回类型type也与exp1表达式的类型一致;否则生成exp2,并且返回类型type也与exp2的类型一致。由于是编译时行为,因此exp1与exp2表达式所产生的目标代码是互斥的,生成了exp1就不会存在exp2。