반응형
uint64_t 인쇄 방법?오류: "허위 후행 '%' 형식"
printf uint64_t의 매우 간단한 테스트 코드를 작성했다.
#include <inttypes.h>
#include <stdio.h>
int main()
{
uint64_t ui64 = 90;
printf("test uint64_t : %" PRIu64 "\n", ui64);
return 0;
}
나는 그것을 컴파일하기 위해 ubuntu 11.10 (64 비트)과 gcc 버전 4.6.1을 사용하지만, 실패하였다.
main.cpp: In function ‘int main()’:
main.cpp:9:30: error: expected ‘)’ before ‘PRIu64’
main.cpp:9:47: warning: spurious trailing ‘%’ in format [-Wformat]
ISO C99 표준은 이러한 매크로가 명시적으로 요청된 경우에만 정의되어야 한다고 명시한다.
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
... now PRIu64 will work
센토스 5.x에 따라 memcached를 편찬할 때 나도 같은 문제를 얻었다.
gcc와 g+++를 최소한 버전 4.4로 업그레이드하는 게 해법이다.
컴파일하기 전에 CC/CXX가 오른쪽 이진 파일로 설정(내보내기)되었는지 확인하십시오.
C++ 태그를 포함했으므로 {fmt} 라이브러리를 사용하여 해당 라이브러리를 사용하지 마십시오.PRIu64
매크로 등printf
모두 합쳐서 다음과 같은 문제:
#include <fmt/core.h>
int main() {
uint64_t ui64 = 90;
fmt::print("test uint64_t : {}\n", ui64);
}
C++20: P0645의 표준화를 위해 이 라이브러리에 기반한 서식설비를 제안한다.
고지 사항:{fmt}의 저자다.
반응형
'programing' 카테고리의 다른 글
Acronyms를 사용한 Java 명명 규칙 (0) | 2022.05.23 |
---|---|
유닛 테스트를 위해 Vuex 게이터를 조롱하면 예기치 않은 결과가 발생함 (0) | 2022.05.23 |
C99에서 유니온을 통한 형식연결이 불특정화 되어 있으며, C11에 명시되어 있는가? (0) | 2022.05.23 |
npm을 실행하는 경우 빌드 실행 시 VUE에서 build.js 파일만 생성 (0) | 2022.05.23 |
다중 요소 선택 Vue.js (0) | 2022.05.23 |