gpt4 book ai didi

c++ - 是否有 GCC 预处理器指令来检查代码是否在 64 位机器上编译?

转载 作者:IT老高 更新时间:2023-10-28 22:33:36 24 4
gpt4 key购买 nike

我正在尝试执行以下操作;

#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 位机器上编译代码的解决方案。

最佳答案

我认为 __LP64__ 可能是您正在寻找的。见 http://gcc.gnu.org/onlinedocs/gcc-4.1.2/cpp/Common-Predefined-Macros.html

不过,也许更好的方法是使用 %p 说明符来 printf() 而不是 %ld 或 %d。那么你甚至不必担心你的指针大小是多少。

关于c++ - 是否有 GCC 预处理器指令来检查代码是否在 64 位机器上编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com