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

How to wrap glibc library functions to automatically use 'unsigned char' and 'wchar_t'?

我总是将 char 用作 unsigned char,将 wchar_t 用作 wint_t。鉴于此,是否存在更改函数接口以在重新编译或不重新编译 glibc 的情况下使用这些类型的解决方案?另见这个问题:

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

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

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

宽字符类型 wchar_t 是系统特定的,它在 linux 系统上以及使用 glibc 的任何地方通常为 32 位宽,但对于历史记录的 Microsoft 工具只有 16 位宽原因。改变这个类型会导致编译器和库之间的兼容性问题,想都别想。