在我维护的一个应用程序中,我们遇到了影响标准库的文件描述符限制的问题。此问题仅影响 32 位版本的标准库。
我已经为我的代码设计了一个修复程序并希望实现它,但仅限于编译 32 位可执行文件时。#ifdef 可以使用什么预处理器符号来确定代码是针对 32 位还是 64 位目标编译的?
编辑
不好意思,没提,代码是跨平台的,linux,windows,solaris等几个unix风格,主要是用GCC编译。我可以跨平台使用任何事实上的标准吗?
编辑 2
我发现了一些定义“__ILP23”和“__LP64”,它们似乎可以工作......这里的讨论解释了unix平台的背景。有人有使用这些定义的经验吗?这能用吗?