C/C++宏定义中do{…} while(0)的用途
今天在pthread_create()的manual中看到了一个宏定义的函数:
#define handle_error_en(en, msg) \
do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)
#define handle_error(msg) \
do { perror(msg); exit(EXIT_FAILURE); } while (0)
其中 do{ ... } while(0)
的用法让愚钝的我困扰了半天,没想到上网一查发现也有好多人和我有一样的困惑,最后在