wint_t
类型在wchar.h
中通过stddef.h
设置,使用__WINT_TYPE__
已在编译器中默认定义的事实。因此,要改变什么是“兼容性C++修改”?
typedef unsigned int wint_t;
到
typedef wchar_t wint_t;
我们可以在wchar.h
#undef __WINT_TYPE__
#define __WINT_TYPE__ wchar_t
#define WEOF (-1)
但this注释的开头使用下面的代码表明,这样做 “为C++重整休息兼容性” 。
你不能改变现有的typedef的定义,如所述wint_t不破坏ABI兼容性(即使你有相同的大小和 的符号性,因此是对C ABI兼容,改变基本型 休息兼容性C++修改)。
那么,为什么这个typedef不能改变,什么是“兼容性C++修改”?
也看到这个问题How to change wchar.h to make wchar_t the same type as wint_t?
在C++中,'wchar_t'是一个分离的类型 – Danh
也就是说,带有C链接的函数不包含在mangling中的类型,所以我不完全确定这样的变化会如何影响任何与C++相关的东西。另见[diff.wchar.t];没有这样的typedef会暴露给C++。 –