我在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
答案 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字符,前者可能是更容易理解的路径。