由于编码和行尾设置引起的编译问题,当然关键还是中文字符

下面这个简单的C++源文件怎么看都不会有错误,可当把它保存为UTF8(无BOM)格式,换行符只有(LF)时,注释行会延伸到下一行,从而导致变量没有定义。注意下面代码中引号后面没有任何字符。


void main()
{
    // Test “”
    int n;
    n += 1;
}


在VS中输入上面的代码后,选择另存为,点取保存按钮旁边的倒三角,选择,编码保存,设置保存选项如下图所示(无签名的UTF8,行尾没有CR,只有LF):

由于编码和行尾设置引起的编译问题,当然关键还是中文字符

你的这个文件将编译出错。

也可以通过查看预编译结果来验证。