预处理表达式可以出现在 #if
和 #elif
指令中。在预处理表达式中允许使用 !
、==
、!=
、&&
和 ||
运算符,并且可以使用括号进行分组。
-
pp-expression:(pp 表达式:)
- whitespaceopt pp-or-expression whitespaceopt(空白可选 pp 或表达式 空白可选) pp-or-expression:(pp 或表达式:)
-
pp-and-expression(pp 与表达式)
pp-or-expression whitespaceopt || whitespaceopt pp-and-expression(pp 或表达式 空白 可选 || 空白 可选 pp 与表达式)
pp-and-expression:(pp 与表达式:)
-
pp-equality-expression(pp 相等表达式)
pp-and-expression whitespaceopt && whitespaceopt pp-equality-expression(pp 与表达式 空白 可选 && 空白 可选 pp 相等表达式)
pp-equality-expression:(pp 相等表达式:)
-
pp-unary-expression(pp 一元表达式)
pp-equality-expression whitespaceopt == whitespaceopt pp-unary-expression(pp 相等表达式 空白 可选 == 空白 可选 pp 一元表达式)
pp-equality-expression whitespaceopt != whitespaceopt pp-unary-expression(pp 相等表达式 空白 可选 != 空白 可选 pp 一元表达式)
pp-unary-expression:(pp 一元表达式:)
-
pp-primary-expression(pp 基本表达式)
! whitespaceopt pp-unary-expression(! 空白 可选 pp 一元表达式)
pp-primary-expression:(pp 基本表达式:)
-
true
false
conditional-symbol(条件符号)
( whitespaceopt pp-expression whitespaceopt )((空白 可选 pp 表达式 空白 可选 ))
当在预处理表达式中引用时,已定义的条件编译符号具有布尔值 true
,未定义的条件编译符号具有布尔值 false
。
预处理表达式的计算总是产生一个布尔值。预处理表达式的计算规则与常数表达式(第 7.15 节)相同,唯一的例外是:在这里,唯一可引用的用户定义实体是条件编译符号。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-924539/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8781179/viewspace-924539/