Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 식별자에서 밑줄(_) 사용 규칙 완벽 정리

C++ 식별자에서 밑줄(_) 사용 규칙이란?

C++에서 변수명이나 함수명 같은 식별자를 지을 때 밑줄을 어디에, 어떻게 사용할 수 있는지 정확히 알고 있어야 컴파일러나 표준 라이브러리와의 충돌을 피할 수 있습니다. MSDN 공식 문서에 따르면 다음과 같은 규칙이 적용됩니다.

구현체(컴파일러)를 위해 예약된 이름

식별자가 연속된 두 개의 밑줄(__)로 시작하거나, 밑줄 하나 뒤에 대문자가 이어지는 형태(예: _Foo)라면 모든 범위(scope)에서 C++ 구현체(implementation)를 위해 예약되어 있습니다. 즉, 개발자가 직접 사용해서는 안 됩니다.

또한 밑줄 하나 뒤에 소문자가 오는 이름(예: _foo)도 파일 범위(file scope)에서는 사용하지 않는 것이 좋습니다. 현재 또는 미래의 예약 식별자와 충돌할 가능성이 있기 때문입니다.

사용하면 안 되는 이름 예시

따라서 아래와 같은 이름은 어떤 경우에도 사용하지 말아야 합니다.

__foo, __FOO, _FOO

그리고 다음과 같은 이름들은 전역 네임스페이스(global namespace)에서는 절대 사용하지 않아야 합니다.

_foo, _bar

그 외 주의해야 할 접두사와 접미사

이 외에도 LC_, SIG_ 같은 접두사와 _t 접미사 역시 구현체를 위해 예약되어 있으므로 사용하지 않는 것이 좋습니다. 실제로 size_t, int32_t처럼 표준 라이브러리에서 이미 사용 중인 이름들과 충돌할 수 있습니다.

안전하게 사용할 수 있는 경우

반면, 밑줄을 이름 중간에 포함하거나 이름 끝에 붙이는 것은 전혀 문제가 되지 않습니다.

my_variable, total_value, count_

정리하자면, 밑줄로 시작하는 이름은 대부분 컴파일러와 표준 라이브러리의 영역이므로 반드시 피하고, 이름 중간이나 끝에 위치한 밑줄만 자유롭게 활용하는 것이 안전한 C++ 코딩 스타일입니다.