do/while(0) c4127
原文链接:http://cnicholson.net/2009/03/stupid-c-tricks-dowhile0-and-c4127/
// NOISY CODE #define MULTI_LINE_MACRO(VALUE) do { \ printf("Hello "); \ printf("world!\n"); \ } while (VALUE) int main() { MULTI_LINE_MACRO(0); return 0; }
#pragma warning(disable:4127)
如果添加这句,那么包含改文件的都会被disable
最好是这样
#define MULTI_LINE_MACRO(VALUE) do { \ printf("Hello "); \ printf("world!\n"); \ __pragma(warning(push))\ __pragma(warning(disable:4127))\ } while (VALUE)\ __pragma(warning(pop))
只有这几行是disbale的
是__pragram而不是#program,#program不能这样用,不能让在宏定义里;
本文由博主(YinaPan)原创或者转载,如若转载请务必注明出处,谢谢合作!