이중 밑줄은 구현에 예약되어 있습니다.
가장 많이 투표 한 답변은 C ++ 프로그래밍 : 규칙 및 권장 사항을 인용합니다 .
"식별자에 두 개의 밑줄 (`__ ')을 사용하는 것은 ANSI-C 표준에 따라 컴파일러의 내부 사용을 위해 예약되어 있습니다."
그러나 몇 C ++와 C 표준을 읽은 후, 나는 밑줄에 대한 언급이 제한되는 찾을 수 없습니다 단지 컴파일러의 내부. 표준은보다 일반적이며 구현을 위해 이중 밑줄을 유지 합니다 .
C ++
C ++ (현재 작업 초안, 2019-5-26에 액세스) 상태 lex.name
:
- 이중 밑줄 __을 포함하거나 밑줄로 시작하고 그 뒤에 대문자가 오는 각 식별자는 모든 용도로 구현에 예약되어 있습니다.
- 밑줄로 시작하는 각 식별자는 전역 네임 스페이스에서 이름으로 사용하기 위해 구현에 예약되어 있습니다.
씨
이 질문은 C ++에만 해당되지만 C 표준 99 및 17의 관련 섹션을 인용했습니다.
C99 섹션 7.1.3
- 밑줄과 대문자 또는 다른 밑줄로 시작하는 모든 식별자는 항상 모든 용도로 예약되어 있습니다.
- 밑줄로 시작하는 모든 식별자는 항상 일반 및 태그 이름 공간 모두에서 파일 범위가있는 식별자로 사용하도록 예약되어 있습니다.
C17 은 C99와 같은 것을 말합니다.
구현 은 무엇입니까 ?
C / C ++의 경우 구현 은 사용자 소스 파일에서 실행 파일을 생성하는 데 필요한 집합 리소스를 느슨하게 참조합니다. 여기에는 다음이 포함됩니다.
구현 예
Wikipedia에 언급 된 다양한 C ++ 구현이 있습니다. (앵커 링크 없음, ctrl + f "구현")
다음은 Digital Mars의 기능을 위해 일부 키워드를 예약하는 C / C ++ 구현의 예입니다.