这里以Code::Blocks 10.5版本为蓝本进行说明。
首先,请在Code::Blocks里面输入标准的一个C程序:
然后选用不同的编译器,观看效果。
1.Tiny C
编译没问题,但是wprintf是显示不出内容的。注释掉setlocale(LC_ALL,"chs“)之后,wprintf显示出和printf一样的效果。
结果证明,Tinny C是不真正的支持wchar_t宽字符集。因为通过调试器,我发现他的wchar_t里面保存的字符每个字符确实是用2个字节了,但是里面编码依然是ANSI编码,并不是unicode代码,所以setlocale(LC_ALL,"chs“)+wprintf显示不出来(其实wprintf实现的时候,是不会直接输出unicode的,他实际是先把unicode转