关于vs2003宏定义问题

![图片说明
!图片说明
用的是vs2003编译器~
vs2003用mupdf方法时头文件报错~求大神解决

括号内的不是表达式,因此,加了括号,编译器不能识别,所以报错。
do{}while(0) 序列 ,是控制结构,不是表达式,至少不是标准中定义的表达式。
加了括号后,编译器不清楚,这是什么。
C++有声明定义
有控制结构
有表达式
这三种,都可以加上分号成语句。

函数定义,不需要分号,因为函数体,就是个语句组。
预编译语句,不需要分号。

太旧了吧,根本查不到,资料很少,请参考:http://www.it610.com/article/2118274.htm

vc++ 2013不支持变长参数宏,这代码需要用gcc编译