게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
프로그래밍 관련 질문 있습니다.
게시물ID : programmer_6274짧은주소 복사하기
작성자 : 화생방조교
추천 : 0
조회수 : 457회
댓글수 : 8개
등록시간 : 2014/10/31 03:08:19
#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란 숫자가 나오는지
이해가 안되네요. 죄송하지만 답변 부탁드리겠습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호