令我惊讶的是,我刚刚发现MS Visual Studio 2003向上缺少C99 stdint.h.我确定他们有他们的理由,但有谁知道我可以在哪里下载副本?如果没有这个头文件,我就没有uint32_t等有用类型的定义.
是否有一个C宏或某种方式,我可以检查我的C程序是否在C编译时编译为64位或32位?
编译器:GCC我需要进行检查的操作系统:Unix/Linux
如果操作系统能够64位,我怎么能检查运行我的程序?
我正在尝试做类似以下的事情;
#ifdef 64-bit
#define DECIMAL_FORMAT %ld
#else
#define DECIMAL_FORMAT %d
#endif
.
intptr_t d;
.
printf(“Some message with DECIMAL_FORMAT in the middle of it\n”, d);
Run Code Online (Sandbox Code Playgroud)
'intptr_t'类型的变量'd'在32位机器上需要'%d'格式说明符,在64位机器上需要格式说明符'%ld'.我正在寻找一种解决方案,能够在32位机器和64位机器上编译代码,而无需更改GCC命令行或源代码.