简单的C错误 - #include?

时间:2013-12-17 04:01:16

标签: c

我在Windows 8上使用了textpad,安装了MinGW来编译C

不确定为什么会造成麻烦:

#include <stdio.h>

int main (void)
{
    printf("To C, or not to C: that is the question.\n");
    return 0;
}

错误说

C:\Users\Admin\Desktop\C files\pun.c:1:2: warning: null character(s) ignored [enabled by default]
 #
  ^
C:\Users\Admin\Desktop\C files\pun.c:1:3: error: invalid preprocessing directive #i
 #
   ^

cc1.exe: out of memory allocating 838860800 bytes

Tool completed with exit code 1

1 个答案:

答案 0 :(得分:3)

您几乎可以肯定使用UTF-16之类的Unicode编码保存文件。

这会为每个字符分配16位,这意味着如果你倾倒代码,你会看到如下内容:

0000 - 23 00 69 00 6e 00 63 00 - 6c 00 75 00 64 00 5 00 - #.i.n.c.l.u.d.e.

一开始。

无法理解UTF-16的编译器可能会抱怨在所有真实字符中找到空字节,就像你们似乎已经完成的那样。

要修复它,要么以更传统的形式(例如ASCII)保存文件,要么找到可以处理它的编译器。如果您实际上需要所有那些非ASCII Unicode字符,前者可能是更容易理解的路径。