2015-10-22 43 views
1

我希望我的源代码在32位和64位机器之间在源代码级别而不是Linux中的对象级别上兼容。 Q1)然后,我应该照顾什么?我认为的一件事是,我需要照顾整数指针铸造。 如果我使用“long int”,它将在32位机器上是32位长度,在64位机器上是64位长度?什么是适当的方式? 我在想我是否可以使用“long int”。 Q2)我的应用程序是否支持32位或64位? 例如,使用构建参数?使用32位64位机器进行编程在Linux中兼容

+0

Q2看到-m32 -m64 GCC选项:例如,你是否有gcc -m32 hello.cgcc -m64 hello.c编译这个运行良好 –

回答

0
  1. 的正确方法有“的整数同样大小的指针”是使用size_t(大小相同unsigned long int)和ssize_t(大小相同long int)。
  2. 如果您编写gcc file.c,它将在32位机器上编译32位,在64位机器上编译为64位。如果您运行的是gcc -m32 file.c,则无论您的计算机如何,它都将编译为32位,并且类似gcc -m64 file.c将针对64位编译,而与机器无关。

您不需要做任何特殊的事情来编写可移植的C代码;在编写C代码时,您很少需要考虑体系结构。

#include <stdio.h> 
void main() { 
    printf("hello, world\n"); 
} 
相关问题