printf함수는
%d또는
%i와 같은 인자 유형을
서명 된 int로 사용합니다. 그러나
long` 값에 대해서는 아무 것도 보이지 않습니다.
지정자 바로 앞에 l
(소문자 L)을 넣습니다.
unsigned long n;
long m;
printf("%lu %ld", n, m);
무슨 말씀이신지 알겠습니다:
unsigned long n;
printf("%lu", n); // unsigned long
또는
long n;
printf("%ld", n); // signed long
Long int '이' 와 ',' 대부분의 플랫폼에서 동일한 크기 (32 비트). 그래도 지정자와 해당 형식을 가지고 있다.
long n;
unsigned long un;
printf("%ld", n); // signed
printf("%lu", un); // unsigned
long long n;
unsigned long long un;
printf("%lld", n); // signed
printf("%llu", un); // unsigned
아, 물론 it& # 39 의 차이가 Windows:
printf("%l64d", n); // signed
printf("%l64u", un); // unsigned
unsigned long long n;
printf("0x%016llX", n); // "0x" followed by "0-padded", "16 char wide", "long long", "HEX with 0-9A-F"
인쇄됩니다.
0x00000000DEADBEEF
브트와, " long"; # 39, t 짓궂군요 doesn& 훨씬 더 이상 (에서 메인스트림 x64). " int"; int 가 32 비트 플랫폼 기본 크기, 일반적으로. " long"; 보통 크기가 같습니다. 그러나 서로 다른 포터블식 시맨틱스를 켜짐이 tfsnap 플랫폼 (및 근대 임베디드 플랫폼!). 긴 long" "; 일반적으로 사용하는 사람들이 어떤 뜻이 아니라면 진짜 는 64 비트 번호를 알고 그들이 행한 몄쭛 하나의 x 플랫폼 노트북 코드. 그런데도 그들은 지금쯤 매크로를 사용한 캡쳐하기 위해 의미 제꿈의 대신 유형 (eg 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 세때 비트임을 # 39 you& 것이라고 생각할 수 있지만, 아니, 그렇게 되면 이제 64 비트; d 크고작은 미친 포터블식 문제. 물론, 심지어 이 간소화 및 역사 풍부한 이 비밀의 무용할뿐이라 참조 [wiki: 정수] (http://en.wikipedia.org/wiki/Integer_ (computer_science))
unsigned long long n;
printf("%llu", n);
다른 모든 조합에 대해서는, 내가 믿겠군 테이블을 사용하여 printf (http://www.cplusplus.com/reference/clibrary/cstdio/printf/") 에서, a href = " < > manual< /a>;;;; 이 열 라벨 등의 행일 관심용 you& 있는모든 유형, re trying to # 39 보기인쇄 (tpc. 나는한다 printf (" %llu",, n) 을 (를) '' 참조).