회신: wchat_t 사용하기 부분에서...
, 도장_ 관리자님이 작성첫 번째 예제는 Visual Studio에서만 쓸 수 있습니다.
두 번째 예제는 리눅스 + GCC에서 잘 동작합니다.
root@coffee:/mnt/e/works/c# gcc -Wall wchar2.c -o wchar2
root@coffee:/mnt/e/works/c# ./wchar2
13
Hello, world!123
Hello, world!123
0
o, world!123
ld!123
world!123
The
Little
Prince
root@coffee:/mnt/e/works/c#
단, 본문의 설명대로 %s -> %S로 바꿔야 리눅스 환경에서 제대로 동작합니다.
MinGW나 wchar_t 지원이 포함되지 않게 설정된 MinGW를 이용하는 중일 수도 있습니다.
또한, 비슷한 오류에 대해 다음과 같은 설명을 찾을 수 있었습니다.
GCC (mingw) has custom code to disable the checks for the wide printf
functions on Windows
리눅스 환경에서 gcc로는 위와 같이 잘 컴파일됩니다.
IBM에서 제공하는 문서와 예제로 테스트해보세요.
https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/wcstok.htm
윈도 환경에서는 Visual Studio를 사용하고, 리눅스 환경에서는 GCC/Clang을 사용하는 것이 좋습니다. 가능하면 네이티브 환경을 사용하세요. C 언어는 플랫폼 + 컴파일러 구현체에 따라 동작이 다른 경우가 많습니다.(대다수는 Undefined Behavior(정의되지 않은 동작)으로 명시되어 있습니다)