C 언어에서 상수 식 검출: 매크로 접근 방식

2025-04-22

이 글에서는 식이 상수 식인지 감지하는 C 언어 매크로를 만드는 다양한 방법을 살펴봅니다. 저자는 C23의 정적 복합 리터럴, GNU 확장의 `__builtin_constant_p`, `static_assert`, `sizeof`와 복합 리터럴 배열 조합, `sizeof`와 열거형 상수 조합, 콤마 연산자 등 여러 기법을 조사합니다. 각 방법에는 장단점이 있으며, C23 지원은 제한적이고, `__builtin_constant_p`는 GNU 확장에 의존하며, `static_assert`와 `sizeof` 방법은 식의 형식을 변경할 수 있으며, 콤마 연산자는 경고를 생성합니다. 저자는 완벽한 해결책은 없으며 최적의 선택은 구체적인 요구 사항과 C 언어 표준 버전에 따라 달라진다는 결론을 내립니다.

개발 상수 식