关于64位和32位编译环境下不同数据类型长度有以下几条规则:
(1)char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit
(2)short和long类型的长度不相同
(3)int类型通常同具体机器的物理字长相同
(4)short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定, 但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。
类型 |
64位 |
32位 |
16位 |
Char |
1 |
1 |
1 |
Short |
2 |
2 |
2 |
Int |
4 |
4 |
2 |
Long |
8 |
4 |
4 |
Float |
4 |
4 |
4 |
Long long |
8 |
8 |
|
Double |
8 |
8 |
|
Long double |
16 |
12 |
|
Char *(指针) |
8 |
4 |
4 |