> 백엔드 개발 > C++ > 본문

표준 준수를 유지하면서 #define을 사용하여 C 키워드를 재정의할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-11-20 15:52:16
원래의
268명이 탐색했습니다.

Can You Redefine C   Keywords Using #define While Maintaining Standards Compliance?

#define을 사용하여 키워드 재정의: C의 표준 준수

C 전처리기를 사용하면 #define 지시어를 사용하여 언어 키워드를 재정의할 수 있습니다. 그러나 표준 준수에 따라 이 관행에 제한이 따릅니다.

표준 제한

  • 번역 단위 포함: §17.4.3.1.1/2에 따르면 번역 표준 라이브러리 헤더를 포함하는 유닛은 해당 헤더에 선언되거나 정의된 이름에 대한 매크로를 정의할 수 없습니다. 키워드.
  • C 0x(철회 규칙): C 0x에서 제안된 변경 사항은 처음에 #define을 사용하여 키워드를 재정의하는 것을 금지했습니다(§17.6.3.3.1). 그러나 이 규칙은 철회되었으며 기존 제한 사항은 그대로 유지됩니다.

프로그램 적합성

언어 키워드를 재정의하는 C 프로그램은 표준 라이브러리를 포함하는 번역 단위 내에서 표준 규칙을 위반합니다. 헤더. 따라서 이러한 프로그램은 표준을 준수하는 프로그램으로 간주될 수 없습니다.

결론

#define을 사용하여 키워드를 재정의하는 것은 C에서 기술적으로 가능하지만 표준을 준수하는 프로그램에서는 피해야 합니다. C 표준에 의해 부과된 제한 사항은 코드 이식성을 보장하고 키워드가 사전 정의된 의미를 가질 것으로 예상하는 표준 라이브러리 및 기타 코드와의 충돌을 방지하는 역할을 합니다.

위 내용은 표준 준수를 유지하면서 #define을 사용하여 C 키워드를 재정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿