作者回复: 你把你的这个宏展开一下,代码会是 int c=a的内容,int d=b的内容,c>d...,在同一行中用逗号表达式链接了两个定义语句,这存在语法歧义,这是不对的。
作者回复: 对的,也是用;做分隔。关于typeof这个,你可以认为,有两个下划线和没有的其实是两个东西,可两者的作用相同,而一般有两个下划线的更通用一些。
作者回复: 你将这个宏展开,你看看是不是一句合法的C语言代码。你就明白了。^_^
作者回复: 学习是一个螺旋上升的过程,可以先跟着专栏走一遍,然后有时间的时候,再看第二遍,一般都会有新的认识。
作者回复: 宏定义即使在实现的时候是多行,实际替换出来也是一行代码。;结尾的多个语句,也可以写在同一行。
作者回复: 其实只需要在将第二个printf语句改写成:printf(frm,##args);即可。