#include <stdio.h>
#define SQUARE(x) ((x)*(x))
int main()
{
int i = 3;
printf("%d\n", SQUARE(++i));
return 0;
}
전처리기쪽 시험공부중 이해가 안되는부분이 있어 급하게 질문 올립니다.
SQUARE(++i) 이부분에서 #define 으로 정의되어 있는쪽의 식에 대입해보면
((++i) * (++i))되서 결국 4*4=16이 되어야 할것 같은데.
실제 컴파일을 돌려보면 25가 나오더군요. ++i는 전위형이라 먼저 1을 더해주고 계산을 한다고 알고 계산을 했는데.. 왜 25란 숫자가 나오는지
이해가 안되네요. 죄송하지만 답변 부탁드리겠습니다.