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

我总是使用char作为unsigned char ,使用wchar_t作为wint_t 。 鉴于此,是否存在一个解决方案来更改函数接口以使用这些类型有或没有重新编译glibc? 另请参阅此问题: 如何更改wchar.h以使wchar_t与wint_t的类型相同?

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

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

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

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