반응형
#, ##, #@
미리 정의된 매크로
Visual C++에서 미리 정의된 매크로
## 연산자
## 연산자를 사용해서 토큰을 합성해서 만들어 낼 수 있다. ##은 합치기 연산자 이다.
ex) #define MACRO_APPEND(str1, str2) printf("%s\n", str1##str2)
# 연산자
# 연산자는 전달된 인자를 문자열로 변환시킨다.
ex) #define MACRO_STRING(str) printf("%s\n", #str);
#@ 연산자
#@ 연산자는 전달된 인자를 문자로 변환시킨다.
## 연산자를 사용해서 토큰을 합성해서 만들어 낼 수 있다. ##은 합치기 연산자 이다.
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__ : 컴파일될 때의 날짜를 나타내는 문자열이다.
__TIME__ : 현재 소스가 최후로 수정된 날짜와 시간을 나타낸다.
__TIMESTAMP__ : 현재 소스가 최후 컴파일된 시간을 나타내는 문자열이다.
__func__ : 함수명 (컴파일러가 처리, c99 표준)
__FUNCTION__ : 함수명 (컴파일러가 처리, 컴파일러마다 다름)
정의되지 않는다. C++로 컴파일할 때는 이 매크로가 없다.
__FILE__ : 현재 소스 파일의 완전 경로이다.
__LINE__ : 파일명
__DATE__ : 컴파일될 때의 날짜를 나타내는 문자열이다.
__TIME__ : 현재 소스가 최후로 수정된 날짜와 시간을 나타낸다.
__TIMESTAMP__ : 현재 소스가 최후 컴파일된 시간을 나타내는 문자열이다.
__func__ : 함수명 (컴파일러가 처리, c99 표준)
__FUNCTION__ : 함수명 (컴파일러가 처리, 컴파일러마다 다름)
Visual C++에서 미리 정의된 매크로
_DEBUG : 디버그 모드로 컴파일중일 때만 정의된다.
__cplusplus : C++ 모드로 컴파일중일 때만 정의된다.
_DLL : DLL 프로젝트일 때만 정의된다.
_MSC_VER : 비주얼 C++의 컴파일러 버전을 나타낸다. 6.0은 1200으로 정의되며 7.0(닷넷)은 1300으로 정의된다.
_MFC_VER : MFC 라이브러리의 버전값
_ATL_VER : ATL의 버전값
_WIN32 : Win32 환경일 때 정의된다.
_WIN64 : Win64 환경일 때 정의된다.
__COUNTER__ : 참조될 때마다 1씩 증가하는 정수값이다. 유일한 이름을 만들고자 할 때 이 매크로를 사용한다.
7.0 이상에서만 제공된다.
_M_ALPHA, _M_IX86, _M_IA64, _M_MPPC : CPU의 종류이다. 플랫폼에 따라 약간씩 코드가 달려져야 할 때 이 매크로를 참조한다.
__cplusplus : C++ 모드로 컴파일중일 때만 정의된다.
_DLL : DLL 프로젝트일 때만 정의된다.
_MSC_VER : 비주얼 C++의 컴파일러 버전을 나타낸다. 6.0은 1200으로 정의되며 7.0(닷넷)은 1300으로 정의된다.
_MFC_VER : MFC 라이브러리의 버전값
_ATL_VER : ATL의 버전값
_WIN32 : Win32 환경일 때 정의된다.
_WIN64 : Win64 환경일 때 정의된다.
__COUNTER__ : 참조될 때마다 1씩 증가하는 정수값이다. 유일한 이름을 만들고자 할 때 이 매크로를 사용한다.
7.0 이상에서만 제공된다.
_M_ALPHA, _M_IX86, _M_IA64, _M_MPPC : CPU의 종류이다. 플랫폼에 따라 약간씩 코드가 달려져야 할 때 이 매크로를 참조한다.
반응형
'프로그래밍 > C++' 카테고리의 다른 글
비트연산 정리 (1) | 2011.11.21 |
---|---|
printf 출력 서식 (0) | 2011.10.18 |
C 언어 레퍼런스 - localtime 함수 (0) | 2011.10.13 |
[System Call] 메모리 맵 - mmap(), munmap(), msync() (0) | 2011.03.04 |
[C++] 상속 두번째, 세가지 형태의 상속 (private, protected, public) (0) | 2011.03.03 |
Unicode 와 ANSI 문자의 변환을 해주는 매크로 (0) | 2010.12.11 |
가변인자 사용하기 (0) | 2010.11.12 |
const 위치에 따른 동작 (0) | 2010.11.12 |
함수 포인터 (0) | 2010.11.11 |
C++ 파일 입출력 (0) | 2010.10.27 |