C常数表达式

常数表达式在编译时计算,不运行时,可用于可使用常数的任何位置。 常数表达式的计算结果都必须是在该类型中可用的值范围内的常数。 常数表达式的操作数可以是整数常数、字符常数、浮点常数、枚举常量、类型转换, sizeof 表达式和其他常量表达式。

语法

  • 常数表达式:
    条件表达式

  • 条件表达式:
    表达式。

    逻辑或表达式**?** 表达式**:** 条件表达式

  • 表达式:
    赋值表达式

    表达式**,** 赋值表达式

  • 赋值表达式:
    条件表达式

    一元表达式赋值运算符分配表达式

  • 赋值运算符:一个
    = *=/= %= += – = AMP_LTAMP_LT= AMP_GTAMP_GT= = ^=|=

结构声明、枚举、直接声明、直接抽象声明和 labeled 语句的非包含非终止符号 常数表达式

必须使用整型常数表达式指定结构、值的枚举常量,大小的数组或 用例 常数的值的位域成员的大小。

使用预处理器指令的常量表达式是受其他的限制。 因此,它们称为 “受限制的常数表达式”。受限制的常数表达式不能包含 sizeof 表达式、枚举常量、类型转换为任何类型或浮点类型的常量。 它可能,但是,包含特定常数表达式 defined (标识符)。

请参见

概念

操作数和表达式