c - 为 C/C++ 写一个宏 #include

标签 c macros include ibm-midrange

我在 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/

相关文章:

找不到 __CFArray 的 typedef

c - 如何在c中读取内核日志消息?

mysql - Rails 3 - 在查询中包含值

c - Linux 内核使用来自不同驱动程序树的 header 进行制作

PHP 将一个网站包含到另一个网站中

c++ - 如何使用 "priority"进行多线程处理?

mysql - C语言中mysql连接丢失

macros - 使用 Haxe 宏进行条件编译,而不是#if#end

c++ - 限定 C++ 宏的范围?

macros - 区分大小写的字符串比较 Image J Macro