I am reading the book: C: In a Nutshell, and after reading the section Character Sets, which talks about wide characters, I wrote this program:
<
This works for me
#include <stdio.h>
#include <stddef.h>
#include <wchar.h>
#include <locale.h>
int main(void) {
wchar_t wc = L'\x3b1';
setlocale(LC_ALL, "en_US.UTF-8");
wprintf(L"%lc\n", wc);
return 0;
}
try L'\x03B1'
It might just solve your problem. IF you're in doubt you can try :
'\u03b1' to initialize.
wchar_t wc = L'\x3b1';
is the correct way to initialise a wchar_t variable to U+03B1. The L prefix is used to specify a wchar_t literal. Your code defines a char literal and that's why the compiler is warning.
The fact that you don't see the desired character when printing is down to your local environment's console settings.