64 비트 컴퓨터에서 sizeof (int)는 얼마입니까?
중복 가능성 :
int, long 등
의 크기 int의 크기는 컴파일러 및 / 또는 프로세서에 따라 달라 집니까?
정수의 크기를 결정하는 것은 무엇입니까?
64-bit
기계를 사용하고 있습니다.
$ uname -m
x86_64
$ file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
$
다음 프로그램을 실행했을 때 sizeof(int)
as 4-bytes
.
#include <stdio.h>
int main(void)
{
printf("sizeof(int) = %d bytes\n", (int) sizeof(int));
return 0;
}
나는 실행 해요 경우 16-
, 32-
및 64-
비트 컴퓨터를, 다음은의 크기는 것을 의미하지 않는다 integer
이다 16-
, 32-
및 64-
비트 각각?
내 컴퓨터에서 나는 발견 WORD_BIT
이다 32
. 기계 64
에 있어야하지 64-bit
않습니까?
$ getconf WORD_BIT
32
$
그리고 위의 경우 에는 sizeof(int)
be 64-bits
( 8 bytes
) 가 아니어야 합니까?
그럴 필요는 없습니다. "64 비트 머신"은 많은 것을 의미 할 수 있지만 일반적으로 CPU가 그렇게 큰 레지스터를 가지고 있음을 의미합니다. 유형의 크기는 컴파일러에 의해 결정되며, 실제 하드웨어와 관련이있을 필요는 없습니다 (일반적으로는 그렇습니다). 실제로 동일한 시스템의 다른 컴파일러는 이들에 대해 다른 값을 가질 수 있습니다.
포인터의 크기는 64 비트 C / C ++ 컴파일러에서 8 바이트 여야하지만 반드시 int 크기는 아닙니다.
별로. 이전 버전과의 호환성을 위해 32 비트입니다.
64 비트를 원하는 경우 long
, size_t
또는int64_t
C ++에서는의 크기 int
가 명시 적으로 지정되지 않습니다. 최소한의 크기 이상 short int
이어야하며, 최소한 signed char
. char
sizeof (char)가 1로 정의되어 있지만 in bits 의 크기도 명시 적으로 지정되지 않습니다. 64 비트 int를 원하는 경우 C ++ 11은 long long
64 비트 이상을 지정 합니다.
참고 URL : https://stackoverflow.com/questions/10197242/what-should-be-the-sizeofint-on-a-64-bit-machine
'programing' 카테고리의 다른 글
Unix 파일 이름에서 제한해야하는 문자는 무엇입니까? (0) | 2020.11.20 |
---|---|
두 개 이상의 연속 문자를 찾기위한 RegEx (0) | 2020.11.20 |
탭 모음 컨트롤러에 새 탭 추가 (0) | 2020.11.20 |
개체를 이미 정의 된 변수로 분해하는 방법은 무엇입니까? (0) | 2020.11.20 |
Ansible : 명령 줄에서 역할을 실행할 수 있습니까? (0) | 2020.11.20 |