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。
本文介绍了C语言中的两个高级宏:__typeof__用于获取表达式的类型,而__builtin_choose_expr则根据常量表达式的值在编译时选择执行exp1或exp2,确保目标代码互斥。这些是编译时行为,适用于类型推断和条件表达式生成。
720

被折叠的 条评论
为什么被折叠?



