【发布时间】:2009-03-25 18:44:44
【问题描述】:
我正在尝试执行以下操作;
#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);
类型为“intptr_t”的变量“d”在 32 位机器上需要“%d”格式说明符,在 64 位机器上需要格式说明符“%ld”。我正在寻找一种能够在不更改 GCC 命令行或源代码的情况下在 32 位机器和 64 位机器上编译代码的解决方案。
【问题讨论】: