• 有关于宏展开的问题

    2015/10/30 Int_Null 4 评论  , 

因为参加工作不久,所以老大要求每次对原工程有修改的代码都用宏标示出来,这样他好审核。虽然这样的方式很蛋疼,但是领导要求的也没办法。但是昨天在具体使用的时候出现了一些编译上的问题,百思不得其解,所以想请教一下各位大神。

具体的实现是这样的,首先创建了定义宏的头文件:Macro_4_Compile.h,内容为:

调用的测试文件文件:Test.cpp,内容:

然后在编译的过程中发现,第一处调用会报错:

>Macro_4_Compile.h:17:22: error: expected unqualified-id before string constant

如果将其注释掉则不会,说明第二处调用是没问题的(大家可以试试)。而我尝试使用g++ -E的形式预编译,显示结果如下:

这种字符串加;的形式确实比较奇怪,但是为何第一处的全局调用就会出错,而第二处的局部调用则不会?

罗里吧嗦说了这么多,其实我想问的就是对宏的调用为何全局出错而局部不会。

谢谢

2 收藏


直接登录
最新评论