C 상수 식C Constant Expressions

상수 식은 런타임이 아닌 컴파일 타임에 계산되며, 상수를 사용할 수 있는 모든 위치에서 사용될 수 있습니다.A constant expression is evaluated at compile time, not run time, and can be used in any place that a constant can be used. 상수 식은 해당 형식에 대한 표현 가능한 값의 범위에 있는 상수로 계산되어야 합니다.The constant expression must evaluate to a constant that is in the range of representable values for that type. 상수 식의 피연산자는 정수 상수, 문자 상수, 부동 소수점 상수, 열거형 상수, 형식 캐스트, sizeof 식 및 기타 상수 식일 수 있습니다.The operands of a constant expression can be integer constants, character constants, floating-point constants, enumeration constants, type casts, sizeof expressions, and other constant expressions.

구문Syntax

constant-expression:constant-expression:
conditional-expressionconditional-expression

conditional-expression:conditional-expression:
logical-OR-expressionlogical-OR-expression

logical-OR-expression ?logical-OR-expression ? expression : conditional-expressionexpression : conditional-expression

expression:expression:
assignment-expressionassignment-expression

expression , assignment-expressionexpression , assignment-expression

assignment-expression:assignment-expression:
conditional-expressionconditional-expression

unary-expression assignment-operator assignment-expressionunary-expression assignment-operator assignment-expression

assignment-operator: 다음 중 하나assignment-operator: one of
= *= /= %= += -= <<= >>= &= ^= |== *= /= %= += -= <<= >>= &= ^= |=

구조체 선언자, 열거자, 직접 선언자, 직접 추상 선언자 및 레이블 문의 비단말에는 onstant-expression 비단말이 포함됩니다.The nonterminals for struct declarator, enumerator, direct declarator, direct-abstract declarator, and labeled statement contain the constant-expression nonterminal.

정수 상수 식은 구조체의 비트 필드 멤버 크기, 열거형 상수의 값, 배열의 크기 또는 case 상수의 값을 지정하는 데 사용해야 합니다.An integral constant expression must be used to specify the size of a bit-field member of a structure, the value of an enumeration constant, the size of an array, or the value of a case constant.

전처리기 지시문에서 사용된 상수 식에는 제한이 추가로 적용됩니다.Constant expressions used in preprocessor directives are subject to additional restrictions. 따라서 이러한 상수 식을 "제한된 상수 식"이라고 합니다.Consequently, they are known as "restricted constant expressions." 제한된 상수 식은 sizeof 식, 열거형 상수, 모든 형식에 대한 형식 캐스트 또는 부동 형식 상수를 포함할 수 없습니다.A restricted constant expression cannot contain sizeof expressions, enumeration constants, type casts to any type, or floating-type constants. 그러나 특수 상수 식인 defined (identifier)를 포함할 수 있습니다.It can, however, contain the special constant expression defined (identifier).

참고 항목See Also

피연산자 및 식Operands and Expressions