회신: 75.4 스왑매크로
, 도장_ 관리자님이 작성본문을 잘 보면
if (num1 == 10) SWAP(num1, num2, int); else printf("10이 아님\n");이러한 코드에 do while {}을 쓰지 않은 SWAP 매크로를 쓰면 에러가 발생합니다. 컴파일이 되지 않습니다.
macro.c(19): error C2181: if와 짝을 이루지 않는 잘못된 else문입니다.
그래서 본문을 보면 마지막에 다음과 같이 설명이 되어 있습니다.
Unit 75.4를 천천히 읽어보세요.
----
이 코드가 전처리기를 거치면 다음과 같이 } (닫는 중괄호) 뒤에 ; (세미콜론)이 붙어서 컴파일 에러가 발생합니다.
if (num1 == 10) { int temp; temp = num1; num1 = num2; num2 = temp; }; // 세미콜론 때문에 컴파일 에러가 발생 else printf("10이 아님\n");