For C, wchar_t is a typedef. Whether it is a synonym for unsigned int, whether it is an unsigned type at all, or whether it is 4 bytes, is implementation-defined.
In C++, wchar_t is a distinct built-in type. Here, too, its size and signedness is implementation-defined.