我正在寻找一种可靠的方法来确定C++代码是否在32位还是64位编译。我们想出了使用宏的合理解决方案,但我想知道是否有可能存在无法覆盖的情况或者是否有更好的方法。请注意我们正在尝试在跨平台、多编译器环境下完成这项任务。
#if ((ULONG_MAX) == (UINT_MAX))
# define IS32BIT
#else
# define IS64BIT
#endif
#ifdef IS64BIT
DoMy64BitOperation()
#else
DoMy32BitOperation()
#endif
感谢。
stdint.h
可能是你的朋友,或者你可能需要开发一些适当的 typedef。 - Phil Miller