使用GCC编译时,出现下面的奇怪错误:
error:stray '/357' in program
error:stray '/273' in program
error:stray '/277' in program
提示说,在第一行,有GCC不能识别的字符。 但是我反复查看,根本没有任何问题。因为我用的是slickedit 2007,选的UTF-8编码,而之前的slickedit版本使用UTF-8一向没有问题,是slickedit的字符编码问题还是GCC不支持UTF-8呢?如果GCC不支持,那应该全部不能识别,怎么会只有一行呢?如果能够识别,为什么第一行不能识别,难道这一行的UTF-8有什么问题?
然后我google了一下,发现有人遇到过这个问题,据说把UTF-8转成TEXT编译就可以通过。我于是把字符编码改成TEXT,问题果然出现了,第一行的#字符变成了乱码,我查阅过相关资料,UTF-8和ASCII编码对于基本字符集表示是完全相同的,也就是说#字符,作为一个简单的character,在UTF-8和ASCII里面应该完全一致,但现在显然是两种表示。当我把文件编码改成ASCII之后,更正错误的字符,编译果然顺利通过了。
一般来说这个问题,应该是在UTF-8中使用了非ASCII字符集中的字符,但我的程序中没有使用这些字符,没有中文符号。所以很奇怪,难道是slickedit 2007的问题?