It is implementation-defined, which means it differs between compilers and platforms.
Specifically, it's 2 bytes on Windows, which adopted Unicode back when it was limited to 16 bits, and failed to upgrade.
It's 4 bytes pretty much everywhere else (e.g. Linux), since that's how much is necessary to represent any single Unicode code point.
You can find out how big it is by compiling a test program and printing sizeof(wchar_t)
Last edited on