error C2001: newline in constant
错误分析:
(1)字符串常量、字符常量中是否有换行。
(2)在这句语句中,某个字符串常量的尾部是否漏掉了双引号。
(3)在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"。
(4)在这句语句中,某个字符常量的尾部是否漏掉了单引号。
(5)是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。
我当时遇到的情况是(3),在每行后面使用转义字符“\”就可以了。
原理:在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符,而把下一行的内容也算作是本行的内容.
这里反斜杠起到了续行的作用.构建较长的字符串是续行的常见用途,还有一个作用是定义跨行的宏.
一种说法:
DASLog (DASProtWarn, L"(%s)消息超时,进入慢循环召唤模式。", GetHierarchyName());
error C2001:常量中有换行符
该错误的原因很显然是文件编码的问题,在网上搜索了一下,找到了如下解决办法:
(1)全部用英文编码,不要用中文
(2)偶数中文 或 结尾加英文的符号,如"."
(3)将文件编码进行一个手动(如记事本)转换,改成UTF-8格式