我正在用 C 编写一个程序,旨在在 HP NonStop 机器上编译和运行。然而,我想在运行 Linux 的工作站上进行主要开发。 HP NonStop C 编译器需要非标准 #include 指令,如下所示:
#include <stdio.h> nolist
对于每个 #include 指令,我的工作站的 GCC 都会抱怨:
S88USF.c:139:21: warning: extra tokens at end of #include directive
我怎样才能抑制这个特定的警告?
注意:在SO上,已经提出了类似的问题,正确的答案是“首先不要给海湾合作委员会任何抱怨的理由”。然而,在这种情况下,我明确希望 #include 指令保持原样。
我知道我在做什么,只是不知道如何通知海湾合作委员会。
一种解决方法是定义一个包含以下预处理器宏的标头:
//hp_workaround.h
#ifdef HP_
#define HP_INCLUDE_DIRECTIVE(x) x
#else
#define HP_INCLUDE_DIRECTIVE(x)
#endif
然后用这个宏保护你的指令
#include "hp_workaround.h"
#include <stdio.h> HP_INCLUDE_DIRECTIVE(nolist)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)