char vs wchar_t
Estou tentando imprimir uma string wchar_t *. O código está abaixo:
#include <stdio.h>
#include <string.h>
#include <wchar.h>
char *ascii_ = "中日友好"; //line-1
wchar_t *wchar_ = L"中日友好"; //line-2
int main()
{
printf("ascii_: %s\n", ascii_); //line-3
wprintf(L"wchar_: %s\n", wchar_); //line-4
return 0;
}
//Output
ascii_: 中日友好
Questão
Aparentemente, não devo atribuir caracteres CJK ao ponteiro char * na linha 1, mas acabei de fazê-lo, e a saída da linha 3 está correta. Então, por que? Como printf () na linha 3 me deu os caracteres não-ascii? Ele conhece a codificação de alguma forma?
Presumo que o código da linha 2 e da linha 4 esteja correto, mas por que não recebi nenhuma saída da linha