|
|
1
3
指针的大小对于测试来说并不是一件好事——在标准C中,您无论如何都不能对测试结果做太多的工作。
我的建议是测试
如果大于
(例如,如果您知道
|
|
2
9
简短回答: 不 答案很长:这取决于太多的操作系统/编译器组合。例如,在运行时,在Linux上可以查询proc文件系统,而在Windows上可以查询寄存器。 您可以证明用于编译的编译器有一个32/64位的目标,其使用如下所示:
这可以在很少的假设下工作(例如,它在运行时工作)。您可以搜索编译时
|
|
|
3
8
如果您使用gcc(如标记中所示),那么可以测试,作为编译时测试。
以了解它是否是64位系统。确保使用的gcc版本定义
|
|
|
4
2
最常见的方法是测试
x86/x64 CPU上的另一种可能性是测试“lm”标志。如果存在,CPU会理解AMD64指令集。 |
|
|
5
2
不幸的是,安全和可移植的技术是不可能的(因为安全和可移植只允许您使用C标准中的规则)。
另一方面,如果您只是想区分x86和x64(32位和64位PC处理器),那么sizeof(void*)就足够了,可以跨编译器进行移植。 |
|
6
1
代码库中的32位或数据库中的32位。:-)8086处理器具有16位数据和20位代码存储器。而且,现代哈瓦德机器用代码/数据分离做一些奇怪的事情…
你可以查一下
|
|
|
7
1
|
|
|
Lue · 慈善机构如何衡量捐赠的CPU使用率? 8 年前 |
|
|
Dusol · 使用多核时是否可能超出带宽限制? 8 年前 |
|
|
Adelin · ISA存储在哪里?如何准确地考虑它? 9 年前 |
|
|
St.Antario · 了解cpu寄存器 9 年前 |