주의사항
1. 매크로 함수는 전체식에 괄호를 사용해야 한다.
ex) #define a(i) (i+i)
2. 매크로의 인수들도 개별적으로 괄호로 싸 준다.
ex) #define a(i) ((i) * (i))
3. 매크로 함수는 인수의 타입 같은 것은 점검하지 않는다.
ex) #define a(p) (*p++)
4. 매크로 함수에 여러 개의 명령을 동시에 포함시킬 수 있다.
- 명령이 여러개가 있을 경우에는 { } 를 활용하여 표시한다.
ex) #define Print(x,y,str) { gotoxy(x,y); Puts(str); }
- 여러 줄로 표시하고 싶을 때는 \를 넣는다.
ex) #define Print(x,y,str) \
{ clrscr(); \
gotoxy(x,y); \
puts(str); }
5. 매크로 함수에는 ++, -- 연산자는 사용하지 않는 것이 좋다.
-> 연산 과정이 복잡하고, 컴파일러에 따라 연산 결과가 다를 수 있다.
6. 매크로 함수를 남용하지 말고, 적절하게 사용하자
ex) #define abs(s) (((a) > 0 ) ? (a) : (-a))
ex) #define i2m(i) ((i)*25.4
http://soen.kr/ 정리