我想了解C标准。特别是这部分来自C99:
§5.1.1.21.5字符常量和字符串文字中的每个源字符集成员和转义序列都转换为执行字符集的相应成员;如果没有相应的成员,则将其转换为除null(宽)字符以外的实现定义的成员。
我制作了这个示例代码,
#include <stdio.h>
int main(void)
{
printf("Ø");
}
当我尝试用-std=C99 -fexec-charset=ASCII
的GCC编译它时,我收到错误
foo.c:5:9: error: converting to execution character set: Invalid or incomplete multibyte or wide character
printf("Ø");
^
不应该将'Ø'转换为实现定义的ASCII字符并根据上面的引用进行编译吗?