本文主要是介绍C语言在32位和64位系统上各类型所占字节数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引言
编写C/C++语言程序,必须要知道基本数据类型所占字节数,才能深刻理解数组(array)、结构体(structure)、联合体(union)等所占内存的大小(对于结构体和联合体,还需要理解字节对齐的知识)。 编写在32位和64位机器上运行的程序时,更需要了解各个类型在不同机器上的差异。
对比表
| 数据类型 | 32位机(字节) | 64位机(字节) | 备注 |
|---|---|---|---|
| char | 1 | 1 |
|
| short | 2 | 2 |
|
| int | 4 | 4 |
|
| long | 4 | 8 | 32位与64位不同 |
| float | 4 | 4 |
|
| char * | 4 | 8 | 其他指针类型如long *, int * 也是如此 |
| long long | 8 | 8 |
|
| double | 8 | 8 |
|
| long double | 10/12 | 10/16 | 有效位10字节。32位为了对齐实际分配12字节;64位分配16字节 |
小结
通过上表,可以看出,对于32位和64位机器,只有long和指针类型的长度不一样,其它类型所占字节数都是一样的(long double除外,见注释)。这篇关于C语言在32位和64位系统上各类型所占字节数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!