sourcecode

64비트 머신의 사이즈(int)는 어떻게 해야 합니까?

copyscript 2022. 8. 1. 22:40
반응형

64비트 머신의 사이즈(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)~하듯이4-bytes.

#include <stdio.h>

int main(void)
{
    printf("sizeof(int) = %d bytes\n", (int) sizeof(int));

    return 0;
}

를 실행하고 있는 경우16-,32-그리고.64-비트머신, 그럼 그 사이즈는 그 사이즈가integer16-,32-그리고.64-비트는요?

내 기계에서, 나는 그것을 발견했다.WORD_BIT32그래야 하지 않을까?64에서64-bit머신을 사용할 수 있습니까?

$ getconf WORD_BIT
32
$ 

그리고...sizeof(int)있다64-bits(8 bytes위의 경우?

64비트 C/C++ 컴파일러에서는 포인터의 크기가 8바이트여야 하지만 반드시 int 사이즈는 아닙니다.

꼭 그럴 필요는 없습니다.「64비트 머신」은 많은 것을 의미하지만, 통상은 CPU에 그 정도의 큰 레지스터가 있는 것을 의미합니다.타입의 사이즈는 컴파일러에 의해 결정됩니다.이 사이즈는 실제 하드웨어와는 관계가 없습니다(일반적으로는 관계가 있지만).실제로 같은 머신상의 컴파일러마다 값이 다를 수 있습니다.

사실 그렇지 않아요.하위 호환성의 경우 32비트입니다.
64비트를 원한다면long,size_t또는int64_t

C++에서는, 다음의 사이즈가int명시적으로 지정되어 있지 않습니다.적어도 그 사이즈는 적어도short int(적어도 다음 크기 이상이어야 합니다.signed char의 크기charin bits도 명시적으로 지정되어 있지 않지만 size of(char)는 1로 정의되어 있습니다.64비트 int를 사용하는 경우 C++11은long long최소 64비트여야 합니다.

언급URL : https://stackoverflow.com/questions/10197242/what-should-be-the-sizeofint-on-a-64-bit-machine

반응형