• [궁금?] c언어 질문이에요.2014.05.15 PM 07:12

게시물 주소 FONT글자 작게하기 글자 키우기

#include
#define multiple(i, j) i*j
#define twice(i) i+i

int main(int argc, char* argv[]) {
int a = 10;
int b = 20;

printf("%d\n",multiple(a, b));
printf("%d\n", twice(multiple(a, b) + multiple(a, b)));

}




마지막 결과값twice이 800이 나오는데 왜 800이 나오는지 궁금합니다. ㅜ.ㅜ

저는 400이 나올줄 알았는데 ㅜ.ㅜ
댓글 : 9 개
200*200 + 200*200 으로 적용되나보네요
디버깅 돌려보삼 그럼 딱나옴
그냥 산수로만 풀어도 800이고, 800나오는게 당연한 코드 아닌가?!
Twice가 (multi+multi)한것을 × 2 해주네요.
테스트 프로그램이더라도 넘 복잡하게
구현하면 오히려 버그만들어요.
twice가 왜 × 2 해주는 거죠?ㅜㅜ
멀티플(10,20)=200
트와이스(200+200) = 트와이스(400)
= 800
twice(200+200) = twice(400) = 400+400 당연한결과네요
아 이해 했어요 ㅜ.ㅜ
t(a*b+a*b) => a*b+a*b+a*b+a*b
친구글 비밀글 댓글 쓰기

user error : Error. B.