긴 형식의 인쇄물에 대한 인수는 무엇인가?
그printf
함수는 다음과 같은 인수 유형을 사용한다.%d
또는%i
의 이유로signed int
. 그러나, 나는 아무 것도 볼 수 없다.long
가치를 매기다
놓아라l
(하향 문자 L) 지정자 바로 앞에.
unsigned long n;
long m;
printf("%lu %ld", n, m);
대부분의 플랫폼에서,long
그리고int
동일한 크기(32비트)그러나 이 회사에는 자체적인 형식 지정자가 있다.
long n;
unsigned long un;
printf("%ld", n); // signed
printf("%lu", un); // unsigned
64비트의 경우,long long
:
long long n;
unsigned long long un;
printf("%lld", n); // signed
printf("%llu", un); // unsigned
아, 그리고 물론 윈도우에서는 다르다.
printf("%l64d", n); // signed
printf("%l64u", un); // unsigned
종종 64비트 값을 인쇄할 때 16진수(보통 숫자가 그렇게 큰 경우 포인터나 비트 필드)로 인쇄하는 것이 도움이 된다.
unsigned long long n;
printf("0x%016llX", n); // "0x" followed by "0-padded", "16 char wide", "long long", "HEX with 0-9A-F"
인쇄 대상:
0x00000000DEADBEEF
Btw, "긴"은 더 이상 (주류 x64에서) 그렇게 큰 의미가 없다."int"는 플랫폼 기본 int 크기(일반적으로 32비트)이다."긴"은 보통 같은 크기 입니다.그러나, 그들은 오래된 플랫폼(그리고 현대의 임베디드 플랫폼!)에서 서로 다른 이식성 의미를 가지고 있다."long long"은 64비트 숫자로, x-플랫폼 휴대용 코드 편집 작업을 실제로 하지 않는 한 사람들이 사용하고자 했던 것이 보통이다.그 때라도, 그들은 아마도 타입의 의미적 의미(예: uint64_t)를 포착하기 위해 매크로를 대신 사용했을 것이다.
char c; // 8 bits
short s; // 16 bits
int i; // 32 bits (on modern platforms)
long l; // 32 bits
long long ll; // 64 bits
옛날에는 "int"가 16비트였다.이제 64비트가 될 거라고 생각하겠지만 아니, 그건 정신나간 이식성 문제를 야기시켰을 거야.물론 이마저도 불가사의하고 역사가 풍부한 진리를 단순화한 것이다.wiki 참조:정수
내 생각에 당신은 다음과 같은 것을 말하는 것 같다.
unsigned long n;
printf("%lu", n); // unsigned long
또는
long n;
printf("%ld", n); // signed long
%ld
cplusplus.com에서 참조를 참조하십시오.
혹시나 인쇄하려고 할 경우unsigned long long
이전과 마찬가지로 다음을 사용하십시오.
unsigned long long n;
printf("%llu", n);
다른 모든 조합의 경우, 인쇄물 설명서의 표를 사용하여 행을 선택한 다음 인쇄하려는 유형에 대해 컬럼 레이블을 사용하십시오.printf("%llu", n)
상부의
서명되지 않은 긴 길이를 참조하는 경우 형식 지정 문자는"%lu"
. 서명이 긴 것을 참조하는 경우 형식 지정 문자는"%ld"
.
나는 이 질문에 확실하게 대답하기 위해서는 당신이 사용하고 있는 컴파일러 이름과 버전, 그리고 그것이 컴파일하고 있는 플랫폼(CPU 타입, OS 등)을 알아야 한다고 생각한다.
참조URL: https://stackoverflow.com/questions/38561/what-is-the-argument-for-printf-that-formats-a-long
'IT이야기' 카테고리의 다른 글
es6-promise 폴리필을 Vue.js로 가져오기 (0) | 2022.05.07 |
---|---|
GDB를 프로세스에 연결하려고 할 때 "추적 작업이 허용되지 않음"을 해결하는 방법 (0) | 2022.05.07 |
Vuex 스토어에서 i18n-nuxt $t 사용 (0) | 2022.05.07 |
넷링크 소켓을 커널 모듈과 통신하는 방법? (0) | 2022.05.07 |
루프 조건에서 사용할 경우 strlen이 여러 번 계산되는가? (0) | 2022.05.07 |