-
매크로(전처리기)backup/c,c++ 2009. 12. 29. 18:46
1. ##
열강에서 필자가 아직 알 필요없다면서 대충 넘어간 부분... 어쩌다 대충 알게된 간단한 이유를 정리해 본다.
모두가 알만한 윈도우 프로그래밍(win32 API, MFC, visual basic,...)등을 하다보면 배열로 선언한게 아니지만
객체들을 배열처럼 접근해야 할 때가 있다.
예를 들어 이름이 obj인 객체가 obj1, obj2, obj3....식으로 있다면 분명 배열은 아니지만
배열처럼 접근하는게 훨씬 용이할 것이다.
이럴 때
#define OBJ obj
#define cat(a,b) a##b
처럼 매크로함수로 선언하고 사용시에(문법은 C를 이용했다.. 아직 윈도우즈 프로그래밍은 모르는 관계로...)
for(i=0;i<10;i++)
cat(OBJ,i) = i;
이런식으로 하면 개별 객체들을 배열처럼 접근해서 처리할 수 있다.
2. 표준매크로
표준매크로가 책(열강)에 _FILE_ _TIME_ _DATE_ _LINE_ 로 보이는데 사실,
__FILE__ __TIME__ __DATE__ __LINE__ 가 맞다.