首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用C计算计算机的单词大小?

如何用C计算计算机的单词大小?
EN

Stack Overflow用户
提问于 2011-10-10 11:01:42
回答 2查看 2.3K关注 0票数 1

可能重复: 确定我的处理器的字大小

今天是一个面试问题。但我不知道..。

我认为面试官的意思是cpu的大小。

我找到了这样的答案:

代码语言:javascript
复制
int cpu_bits(void *dummy1, void *dummy2) 
{ 
 long offset = (long)&dummy2 - (long)&dummy1; 
 int ret = 0; 
 if (8 == offset) 
     ret = 64; 
 else if (4 == offset) 
     ret = 32; 
 else if (2 == offset) 
     ret = 16; 
 else if (1 == offset) 
     ret = 8; 
 else 
     ret = -1; 
 return ret;  
} 

int main() 
{ 
 printf("%d\n", cpu_bits(NULL, NULL)); 
 return 0; 
} 

结果似乎是对的,你认为是吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-10 11:26:54

简单地回答:标准没有定义保证与底层体系结构的字大小相对应的数据类型,而“字大小”在现代CPU上的含义是相当模糊的:字大小与地址大小

由于当前处理器具有兼容性模式、不同大小的寄存器、高级寻址模式和适用于不同宽度的数据的指令,因此至少可以说,通用的“字大小”是不精确的。

我想,面试官仍然生活在90年代,还记得WinAPI在大多数电脑还只有16位的时候推出的那些不太靠谱的WinAPI和DWORD类型。

票数 4
EN

Stack Overflow用户

发布于 2011-10-10 11:04:43

我想他们是在期待这样的事情:

代码语言:javascript
复制
printf("%d\n", (int)sizeof(int) * CHAR_BIT);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7711836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档