如何将glibc库函数包装成自动使用'unsigned char'和'wchar_t'?

时间:2016-11-16 07:19:50

标签: c glibc

我始终将char用作unsigned char,将wchar_t用作wint_t。鉴于此,是否存在一个解决方案来更改函数接口以使用这些类型有或没有重新编译glibc?另请参阅此问题:How to change wchar.h to make wchar_t the same type as wint_t?

1 个答案:

答案 0 :(得分:3)

您可以将命令行选项传递给编译器,以使char默认无符号。通过使用宏和typedef重新定义char来更改接口到标准库函数不是实现目标的正确方法。

对于gcc和clang,请使用-funsigned-char

对于Visual-C ++,请使用-J/J

宽字符类型wchar_t是特定于系统的,它通常在Linux系统上使用32位宽,无论使用何种glibc,但由于历史原因,Microsoft工具只有16位宽。更改此类型将导致编译器和库之间的兼容性问题,甚至不考虑它。