do{}while(0); 的几个用途

#include <stdio.h>

#define NULLMACRO   do{}while(0);

#define DOTASK()      \
     do{            \
         Task1();    \
         Task2();    \
     }while(0);

void Task1()
{
    printf("Task1\n");
}

void Task2()
{
    printf("Task2\n");
}



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

    //1.作用域限制
    do{
        int a = 7;
        printf("%d\n", a);
    }while(0);
    printf("%d\n", a);

    //2.不使用goto语句
    do {
        if(1) 
        {
            printf("no goto\n");
            break; 
        }
    }while(0);


    //3.定义复杂的宏
    DOTASK()

    //4.使用空宏

    return 0;
}

 

posted @ 2017-11-27 20:16  青我所青  阅读(346)  评论(0)    收藏  举报