I know it is not a standard data type
Yes, its standard (described in <stddef.h>
)
wchar_t Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
But in C I don't understand how it works similar to basic data type.
Use the functions and macros of wchar.h header