#define A 25
#define B A+5

printf ("%d", B*2);

홍성대는 B가 30이므로 당연히 B*2는 60이 출력될것으로 생각하였다

하지만 이상하게도 결과는 35가 출력되었는데

이것은 define 매크로가 무식하게 연산을 하기때문이다

B가 25+5이므로 B*2는 25+5*2 즉 35가 출력되는것이다

이런 사태를 방지하기 위해서는

#define B (A+5) 이런식으로 괄호를 써주어야 올바르게 작동한다 

(25+5)*2=60 즉 60이 출력된다

홍성대는 C언어의 정석 이라는 책을 써낼 예정이다