如下:
#define id_error_process(id,ret) do{STF_print("the id ( %s ) is error\n",(id));ret = STF_ERROR;}while(0)
自然会想:为什么不直接用{}定义而要用个do{}while(0)是不是多此一举了呢?
当然不是。
do{}while(0)的作用就是:在使用宏时后边需要紧跟一个分号。因为do{}while(0)的定义最后就需要一个分号。
如下:
#define id_error_process(id,ret) do{STF_print("the id ( %s ) is error\n",(id));ret = STF_ERROR;}while(0)
自然会想:为什么不直接用{}定义而要用个do{}while(0)是不是多此一举了呢?
当然不是。
do{}while(0)的作用就是:在使用宏时后边需要紧跟一个分号。因为do{}while(0)的定义最后就需要一个分号。