在编译某些代码时,我会收到以下内容:
“错误C2018:未知字符'0x40'”
我想知道如何解决这个问题?
答案 0 :(得分:4)
这是我要开始的地方:
您是否包含了任何非标准的包含文件?如果是,请检查错误。
你错过了某处的分号吗?
您是否意外使用了对象>数据而不是对象 - >代码中的任何地方的数据?
您是否已将代码从一台计算机(OS)复制到另一台计算机,导致编码问题?
答案 1 :(得分:3)
字符0x40在ascii,iso-8859-1,utf-8和许多其他编码中都是'@'。它也不是C
中基本字符集的一部分,因此除非可能出现在字符或字符串文字或注释中,否则不应出现在源代码中。你是如何使用它的?你想做什么?
答案 2 :(得分:1)
我刚刚收到此错误,但抱怨字符'0x6',使用Visual Studio 2010编译CPP文件。我摆脱它重写导致错误的行(写上面的同一行旧的,删除旧的。)
答案 3 :(得分:0)
在十六进制编辑器中打开违规.c文件并搜索0x40。也许一些unicode或utf8字符串使它成为ascii文件。
答案 4 :(得分:0)
问题仅在于不包含包含#define MYSQL_VERSION_ID的标题,该标题在冒犯的代码中被引用。
答案 5 :(得分:0)
我在TeamCity构建中遇到此错误。我有一个VS2013生成的资源文件导致错误。我发现编码很奇怪,我可以在NotePad ++中看到。所以我在NotePad ++中将编码转换为UTF-8而没有BOM,这解决了我的问题。
答案 6 :(得分:0)
我的代码以前是在XCode中编辑的,需要在Visual Studio中构建。在Visual Studio中,我找到了带有" ._ filename"的文件。但是在探险家身上没有看到他们。删除这些,它应该建立!