现在网上的代码资源很丰富,有些代码是直接写在论坛帖子上的。当我们满怀希望将这些代码copy到编译器的时候,却发现有些程序貌似完美但是无法运行。这里指出一个“诡异”的错误原因。 #include<iostream> using namespace std;
int main()
{
cout<<"abc"<<endl;
return 0;
} 程序是一定可以运行的。但是当我以“全角”格式在return 0;打上一个空格后,“诡异”的事发生了。程序无法运行,而且提示出错: error C3872: “0x3000”: 此字符不允许在标识符中使用
error C2065: “ ”: 未声明的标识符
error C2143: 语法错误 : 缺少“;”(在“}”的前面) 如果不告诉你“全角”空格的事,这个错误很难发现。网络上的代码不能运行,而且很难发现错误的部分原因就是,在复制的过程中有些字符变成了“全角”格式,而编译器只认“半角”格式的字符。一个建议的做法是去掉所有空格,利用编译器自带的格式调整功能,把所有代码的格式重新调整成编译器认为的标准格式。
|