본문 바로가기

매크로2

매크로 #, ##, #@ ## 연산자 ## 연산자를 사용해서 토큰을 합성해서 만들어 낼 수 있다. ##은 합치기 연산자 이다. ex) #define MACRO_APPEND(str1, str2) printf("%s\n", str1##str2) # 연산자 # 연산자는 전달된 인자를 문자열로 변환시킨다. ex) #define MACRO_STRING(str) printf("%s\n", #str); #@ 연산자 #@ 연산자는 전달된 인자를 문자로 변환시킨다. 미리 정의된 매크로 __STDC__ : 컴파일러가 ANSI C 표준을 따를 경우 1로 정의되며 그렇지 않을 경우 정의되지 않는다. C++로 컴파일할 때는 이 매크로가 없다. __FILE__ : 현재 소스 파일의 완전 경로이다. __LINE__ : 파일명 __DATE.. 2010. 12. 21.
Unicode 와 ANSI 문자의 변환을 해주는 매크로 링크 : http://blog.naver.com/bc8c/61528989 f vs 2005로 넘어오면서 부터 msvs는 unicode를 기본으로 사용 하는 듯 하다. 해서 속성 값을 멀티바이트 문자열로 바꿔주어야 하는데, 윈도우 프로그래밍을 하면서 앞으로 미래를 생각한다면 unicode로 프로그래밍 하는 것이 좋다. 제프리 리처가 쓴 windows via c/c++의 초반부에 이러한 이유로 unicode를 사용하여 프로그램 하라고 나오는데, 당장은 ANSI와 unicode의 변화가 완전하게 이루어 지지 않았다. 따라서 상황에 따라 알아서 함수들을 사용하게 해주는 매크로를 정의한 헤더가 바로 tchar.h 이다. 이 헤더파일을 include 해주면 unicode와 ANSI 문자열에 관한 함수들을 사용 할 .. 2010. 12. 11.