c语言宏相关高级用法

outline

  • all
    • 可变参数宏
    • c语言内置函数
      • 1.__typeof__
      • 2.__builtin_choose_expr

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语言,开发语言)