64位macbook一个字长是32位还是64位

这不为语言标准规定,是实现定义的,和平台采用的数据模型有关。可以看这里:https://en.m.wikipedia.org/wiki/64-bit_computing主流 64 位系统上 int 为 32位的一个原因是 C/C++ 有 5 种标准整数长度,即 char/short/int/long/long long 的长度,char 语义是一个字节长度,这些长度不严格递增;一般的 CPU 适合处理 8/16/32/64 位长度;而假如 int 为 64 位,那么 8/16/32 位总有一个要空出来,无法对应标准整数类型。
■网友
【64位macbook一个字长是32位还是64位】 谢邀。你需要理解以下概念:
CPU的字长。64位Intel CPU,字长是64。你的理解没错。Intel CPU手册中的WORD的含义。它是16位,是在16位Intel CPU流行的时候定义的字长,为了兼容性,一直到现在WORD还是16位。DWORD是32位。QWORD是64位。编译器。编译一个C语言文件时,它需要指定输出的可执行代码是什么平台的。比如,以32位的Visual C++ 6.0为例,它默认输出的是32位Intel CPU上执行的程序,所以,指针和int都是32位。long也是32位。__int64是64位。在你的例子里,编译器显然认为int是32位,long也是32位,而long long是64位。由于你的程序没有显示指针长度,我无法判断编译器的输出目标是32位程序(指针长32位)还是64位程序(指针长64位)。32位程序在64位CPU上的执行。32位程序会在硬件和操作系统两个层面被虚拟化,以便在64位操作系统和64位CPU上执行。在Windows上这个技术叫Wow6432。64位的Linux和Mac OS X也支持运行它们各自的32位程序。
■网友
一般来说int都是32位,无论是64位还是32位。
■网友
跟你的电脑没关系。取决于编译器和编译产出的binary。


    推荐阅读