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

2025-05-13

이 글에서는 식이 컴파일 타임 상수인지 확인하는 C 언어 매크로를 만드는 다양한 방법을 탐구합니다. 저자는 C23의 `constexpr`와 `typeof`, GNU 확장 기능인 `__builtin_constant_p`, C11의 `static_assert`, 그리고 `sizeof`와 복합 리터럴을 사용하는 영리한 기법을 사용하는 방법을 조사합니다. 각 방법에는 장단점이 있으며, 새로운 C 표준이 필요하거나, 컴파일러 확장 기능에 의존하거나, 식의 형식을 변경하거나 경고를 생성할 수 있습니다. 이 글에서는 이러한 방법들의 장단점을 요약하고, 보다 우아한 해결책에 대한 바람을 밝힙니다.

더 보기

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

2025-04-22

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

더 보기
개발 상수 식

BQN으로 Advent of Code 2024 정복하기

2025-01-25

저자는 2024년 Advent of Code 챌린지에 참여하여 배열 언어인 BQN을 배우기로 했습니다. 이 글에서는 환경 구축, 문서 및 도구 사용 경험, BQN의 고유 연산자, 배열 조작, 함수 정의 방식 등의 특징을 소개합니다. 몇 가지 Advent of Code 문제 해결 사례가 제시되며, BQN이 배열 및 그리드 문제를 다루는 데 있어서의 장점과 명령형 언어와의 차이점이 드러납니다. 처음에는 어렵게 느껴졌지만, 저자는 궁극적으로 BQN을 재미있고 강력한 언어로 평가하며, 특히 프로그래밍 퍼즐을 푸는 데 적합하다고 결론짓습니다.

더 보기
개발 배열 언어