这可能是一个非常愚蠢的问题:
我们正在开发Solaris系统.
32位和64位的代码本身有什么不同吗?或者它更像是头文件的问题?
任何人都可以给我一个64位的简单hello-username示例?
这是一个64位程序:
#include <stdio.h>
int main(void)
{
puts("Hello world!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序作为32位程序也是安全的,并且作为16位程序也是安全的.根据编译的位数,程序中不一定有任何差别.
这是一个替代方案:
#include <limits.h>
#include <stdio.h>
int main(void)
{
printf("%ld\n", LONG_MAX);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这将为32位系统和64位Unix系统产生不同的答案,但16位系统和64位Windows系统将产生与32位系统相同的答案.
请注意,这两个程序都具有相同的源代码,并使用相同的标头,无论它们是针对32位还是64位(或者每个Grzegorz Szpetkowski的注释为 16位或8位)进行编译.其中一个程序具有不同的行为,具体取决于平台(编译器)以及是否针对32位或64位模式进行编译; 另一个产生相同的输出.显然,LONG_MAX根据编译模式,从标题导出的值可能不同.
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |