블로그 이미지
SuperMjs

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2009. 7. 24. 17:43 Program Languages

 MFC 나 다른 API 들을 보면 프로그래머들이 호출하는 함수는 보통 다른 같은 함수를 호출 하는 경우가 많습니다.

 

예를 들면 프로그래머들이 a() 을 호출하면 실제 a() 안에서는 _a() 을 호출하는 형식으로 말이지요.

 

평범한 언더바는 간단한 규칙이 있습니다.

 

 

MS 가 제공하는 언더바 가두개 붙은 것은 MS 자체 키워드 일 경우가 많습니다.

 

예를 들면,

 

__try , __except 같은것을 들수 있습니다. 표준 키워드는 아니지만 비주얼씨를 통하여 MS 컴파일러에서는 이러한 언더바가 붙은

 

것들이 마치 키워드 인냥 사용이 됩니다.

 

__abstract, __rise 같은것도 표준 키워드는 아니지만 MS 컴파일러에서는 키워드 처럼 쓰입니다. __stdcall 같은것도요..

 

두번째로 내부 호출용 함수인 경우가 있습니다.

 

프로그래머가 malloc() 함수를 호출하게 되면 malloc 은 #ifdef 에 의해 디버그 모드인지 판단해서 내부 호출용

 

함수인 _malloc_dbg() 함수를 호출합니다. 프로그래머가 물론 직접 malloc() 을 호출하지 않고 _malloc_dbg()를 쓸수도 있습니다.

 

그러나 일반적으로 언더바가 붙은 함수를 호출하는것을 권장하지 않습니다.

 

 

프로그래머들이 쓰는 일반적인 의미로는 앞에 언더바가 붙은것은 다른 사용자(지금 작성하는 라이브러리를 쓰는 프로그래머들)들이

 

직접적으로 만지지 못하게 만드는 private 의 의미를 부여하기도 합니다.

 

어떤 라이브러리는 맴버 함수나 변수에 일반적으로 붙이는 m_ 대신 앞이나 뒷부분에 언더바를 붙이기도 합니다.

 

 

그리고, 컴파일러가 컴파일을 할때, 프로그래머들이만든 함수에 임의로 언더바를 두개 붙입니다.

 

컴파일 과정에서 변수와 함수들이 추가될 수도 있는데, 프로그래머들이 작성한 함수와 변수들의 이름과 겹치게되어 난감한 상황에

 

빠지지 않게 하기 위해서 임의로 언더바 2개를 붙입니다.

 

'Program Languages' 카테고리의 다른 글

Raw socket  (1) 2009.07.13
posted by SuperMjs