1. ホーム
  2. c++

[解決済み] 64ビットマシンでのsizeof(int)はどうすればよいですか?重複

2023-05-25 05:21:39

質問

重複の可能性があります。

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 ビット マシンは多くのことを意味しますが、一般的には CPU がそのサイズのレジスタを持っていることを意味します。 型のサイズはコンパイラーによって決定され、実際のハードウェアとは関係ありません (通常は関係ありますが)。実際、同じマシン上の異なるコンパイラーでは、これらの値が異なることがあります。