我在 AS/400 上工作,它有时是非 POSIX。我们还需要在 UNIX 上编译我们的代码。我们遇到了像 #include 这样简单的问题。
在 AS/400 上,我们需要写:
#include "*LIBL/H/MYLIB"
在UNIX上,我们需要这样写
#include "MYLIB.H"
目前我们在每个 C/C++ 文件的顶部都有这个(丑陋的) block :
#ifndef IS_AS400 #include "*LIBL/H/MYLIB" /* others here */ #else #include "MYLIB.H" /* others here */ #endif
我们想要一个统一的宏。这可能吗?不知道怎么写。
理想情况下,生成的语法为:
SAFE_INCLUDE("MYLIB")这将在每个平台上正确扩展。
请指教。
最佳答案
您可以简单地在每个包含难看的#ifndef
的源文件中#include
一些单独的 header 一次。无论如何,这是一种常见的做法。
关于c - 为 C/C++ 写一个宏 #include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6813084/