ConsoleApplication1.cpp: In function ‘int main()’:
ConsoleApplication1.cpp:10:16: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
10 | printf("%llu", a);
| ~~~^ ~
| | |
| | uint64_t {aka long unsigned int}
| long long unsigned int
| %lu
하지만 g++ 로 컴파일 하면 바로 format 관련 경고가 뜬다.
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
MSVC 에서는 uint64_t 를 unsigned long long 으로 선언한 반면 g++ 에서는 long unsigned int 로 취급해서 %lu 를 사용해야한다.
uint64_t a{ 0 };
printf("%" PRIu64, a);
MSVC, g++ 양쪽에서 문제없이 컴파일 되려면 형식 지정자로 cinttypes 헤더에 선언된 PRIu64 와 같은 매크로를 사용하면 된다.
>wsl --list --online
다음은 설치할 수 있는 유효한 배포 목록입니다.
'wsl --install -d <배포>'를 사용하여 설치하세요.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_8_5 Oracle Linux 8.5
OracleLinux_7_9 Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4 openSUSE Leap 15.4
openSUSE-Tumbleweed openSUSE Tumbleweed