매크로 제어 코드의 주의사항

737 단어
매크로를 사용하여 다음과 같은 방법으로 코드를 제어할 때가 있습니다.
#ifdef XXXX

#else

#endif
그러나 주의해야 할 점이 하나 있다. #endif는 단독으로 한 줄을 차지해야 하며, 그 뒤에 코드를 쓰면 뒤에 있는 코드도 미리 처리할 때 삭제된다.
예를 들어 아래의 코드는 #endif 동행에 if 문장이 하나 더 있습니다
#include <stdio.h>

int main()
{
        int a, b;
#ifdef ABC
        if (a = 0) {
#else
        if (a == 1) {
#endif  if (b = 0) {
                        printf("123
"); } } return 0; }

그러나 실제 사전 처리 결과는 다음과 같습니다.
int main()
{
 int a, b;



 if (a == 1) {

   printf("123
"); } } return 0; }

위에서 볼 수 있듯이 #endif 뒤에 있는if 문장이 없어졌다.

좋은 웹페이지 즐겨찾기