Разница между wchart и char при работе с международными символами заключается в том, что wchart предназначен для хранения символов, размер которых выходит за пределы одного байта, а char — для символов в кодировке ASCII. 12
char представляет один символ и занимает один байт (8 бит). 15 Обычно используется для хранения символов ASCII. 5 Если попытаться присвоить переменной типа char символ, код которого выходит за диапазон типа char, компилятор выдаст предупреждение. 2
wchart (wide — широкий char) используется для хранения широких символов, например кодировки Unicode. 15 Размер wchart зависит от системы и может быть 16 или 32 бита. 5 Если попытаться присвоить переменной типа char символ, который хранится в wchar_t, компилятор не позволит это сделать. 2
Таким образом, char подходит для работы с символами, которые можно представить в одном байте, а wchar_t — для символов, требующих большего количества памяти.