#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);