当前位置: 代码迷 >> QT开发 >> 关于 #define do{}while(零)
  详细解决方案

关于 #define do{}while(零)

热度:597   发布时间:2016-04-25 03:09:04.0
关于 #define do{}while(0)
#define errorPrint(format,...) 
do 
{
    printf("错误:\n");
 printf("%s%s,%s([%s]:line:%d\n)",__DATE__,__TIME__,__FILE__,__FUNCTION__,__LINE__);
 printf(format,##__VA_ARGS__); 
} while (0)
 
 
 
为什么会报以下错误:
 error C2059: 语法错误 : “do”
 error C2143: 语法错误 : 缺少“;”(在“{”的前面)
 error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
error C2014: 预处理器命令必须作为第一个非空白空间启动
error C2059: 语法错误 : “while”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
error C3861: “warningPrint”: 找不到标识符

------解决思路----------------------
用反斜线可以把多行连接成一行,也许#define设计时就是针对单行的。
另外do-while好像要用分号结尾。
do{

}while(0);
  相关解决方案