您的位置:首页 > 编程语言 > C语言/C++

诡异的C++ #define编译错误

2008-11-29 22:26 302 查看
前几天写代码的时候遇到了一个十分诡异的编译错误。对于下面的代码,你能够发现问题在那里吗?
1: #define test(a, b, c) /


2:         a;            /


3:         if (b)        /


4:             c



编译器给出了下面这个错误信息:

testdefine.cpp(8) : error C2059: syntax error : 'if'

意思是if语法错误。显然这个不是真正原因。实际错误的原因其实很简单,在if的上一行的/那里多了一个空格,现在我把整个代码选择上,就比较容易看得出来问题了:





去掉多余的空格,再次编译,通过。

其实对于C/C++的预处理器而言,很容易就可以过滤掉/后面多余的空格,而没有必要由此引发语法错误。就算是要引发语法错误,也必须得有一个合理清晰的错误信息,不然只会浪费用户的时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: