0
#include <stdio.h>
#define abs(x) x > 0 ? x : -x
int main(void) {
printf("%d\n", abs(abs(3 - 5)));
return 0;
}
왜 아래의 프로그램이 2를 출력하는 동안 위의 프로그램은 8을 출력하고 2가 아닌가?왜이 프로그램은 8을 출력합니까?
#include <stdio.h>
int abs(int x) {
return x > 0 ? x : -x;
}
int main(void) {
printf("%d\n", abs(abs(3 - 5)));
return 0;
}
변경'#define abs (x) x> 0? (x) : 0 (x) : - (x))' – ouah
프로그램은 [negative negative 8을 출력한다] (http://ideone.com/H434lj), x : -x'를'#define abs (x) 8. – dasblinkenlight
최근에 표현식이'#define abs (x) (x> 0? x : -x)'인 경우 변경된 코드를 게시 한 것으로 나타났습니다 (http : // ideone.com/7WY5Ie), @ dasblinkenlight, 방법 감사합니다. –