typedef unsigned int wint_t;
typedef wchar_t wint_t;
#define __WINT_TYPE__ wchar_t
#define WEOF (-1)
You can't change existing definitions of typedefs such as wint_t without breaking ABI compatibility (even when you have the same size and
signedness and so are ABI-compatible for C, changing the underlying type
breaks compatibility for C++ mangling).
So here's some relevant definitions:
Name mangling is the way that the compile represents the method-names you define in C++ so that they're qualified "per class" so for instance
ClassA::method() doesn't clash with
ClassB::method() - this also facilitates overloading such that
ClassA::method(String s) doesn't clash with
Internally these might be represented something like
As the second topic above discusses "name mangling is not merely a compiler-internal matter" - in cases where a public interface for a shared library is being generated, for instance.
So if you take a typedef and change it for your own code, it'll be okay for all the binaries you generate, but any pre-existing binaries such as 3rd party DLLs that depend on this typedef will break.