linux和gcc中的16位wchar\t支持
我正在从事一个符合linux和gcc中的16位wchar\t支持,linux,gcc,wchar-t,Linux,Gcc,Wchar T,我正在从事一个符合-fshort-wchar标志的跨平台项目 因此,wchar\u t类型是2字节。在Windows上这很好,但在Linux上这意味着没有像printf或fprintf这样的libc函数 一段时间以来,我一直在寻找一个好的解决方案,坦率地说,我有点绝望 除了完全避免使用libc函数之外,还有人有什么好主意吗 一个#ifdef中的这个可能会有所帮助(不过我还没有测试过): 如果使用宽字符,则必须使用而不是printf。问题是在linux(gcc)中,wprintf仅适用于32位wc
-fshort-wchar
标志的跨平台项目
因此,wchar\u t
类型是2字节。在Windows上这很好,但在Linux上这意味着没有像printf
或fprintf
这样的libc函数
一段时间以来,我一直在寻找一个好的解决方案,坦率地说,我有点绝望
除了完全避免使用libc函数之外,还有人有什么好主意吗 一个#ifdef
中的这个可能会有所帮助(不过我还没有测试过):
如果使用宽字符,则必须使用而不是
printf
。问题是在linux(gcc)中,wprintf仅适用于32位wchar\u t,这是因为wchar\u t
的表示形式取决于平台和区域设置。您的程序使用的版本必须与您的libc支持的版本匹配。阅读了解更多信息。为什么要获得一个与16位wchar\t一起工作的libc实现?
typedef __u16 wchar_t16;