상수 식은 런타임이 아닌 컴파일 시간에 계산되며 상수가 사용될 수 있는 모든 위치에서 사용할 수 있습니다. 상수 식은 해당 형식의 표현 가능한 값 범위에 있는 상수로 계산되어야 합니다. 상수 식의 피연산자는 정수 상수, 문자 상수, 부동 소수점 상수, 열거형 상수, 형식 캐스트, sizeof 식 및 기타 상수 식일 수 있습니다.
문법
constant-expression:
conditional-expression
conditional-expression:
logical-OR-expression
logical-OR-expression
?
expression
:
conditional-expression
expression:
assignment-expression
expression
,
assignment-expression
assignment-expression:
conditional-expression
unary-expression
assignment-operator
assignment-expression
assignment-operator: 다음 중 하나
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
구조체 선언자, 열거자, 직접 선언자, 직접 추상 선언자 및 레이블이 지정된 문의 비터미널에는 비터미널이 constant-expression 포함됩니다.
정수 상수 식을 사용하여 구조체의 비트 필드 멤버 크기, 열거형 상수 값, 배열 크기 또는 상수 값을 case 지정해야 합니다.
전처리기 지시문에 사용되는 상수 식에는 몇 가지 제한 사항이 적용됩니다.
제한된 상수 식이라고 합니다. 제한된 상수 식에는 식, 열거형 상수, 모든 형식으로의 형식 캐스트 또는 부동 형식 상수가 포함될 sizeof 수 없습니다. 그러나 특수 상수 식 defined (식별자를 포함할 수 있습니다).