이렇게 짜면 어떻게 될까? 궁금해져서 돌려봄
결과는 1 0 나왔는데
이렇게 순서를 바꾸든 전처리문을 몇 개 더 쓰든 결과는 계속 1 0 나옴
왠지 이런 경우에는 정의된 순서에 따라 다를 것 같았는데 그건 또 아니고
왜 결과가 이렇게 나올까?
vs랑 gcc 둘 다 결과 같았음
이렇게 짜면 어떻게 될까? 궁금해져서 돌려봄
결과는 1 0 나왔는데
이렇게 순서를 바꾸든 전처리문을 몇 개 더 쓰든 결과는 계속 1 0 나옴
왠지 이런 경우에는 정의된 순서에 따라 다를 것 같았는데 그건 또 아니고
왜 결과가 이렇게 나올까?
vs랑 gcc 둘 다 결과 같았음
gcc로 한거 맞음? g++ 아니라? 아래 코드 gcc 7.4.0으로 컴파일 안되는데
#include #define true false #define false true int main() { printf("%d %d\n", true, false); }
#include #include #define true false #define false true int main() { printf("%d %d\n", true, false); }
헤더는 댓그에 표시가 안되네 ㅅㅂ stdio.h랑 stdbool.h 헤더임
아 그럼 g++인가보다 사실 잘 몰라서..
늦었지만, 댓글달아보자면 undefined behavior이라, 컴파일러에 따라 다른듯 함.
clang에서는 redefined 관련해서 error하고 warning 뜸