寻找预处理器命令来删除代码中的命令

时间:2017-01-01 13:18:52

标签: c c-preprocessor bcc-compiler

我正在开发一个有时使用

的C库
 static inline void myfunc(...)

定义函数时。

现在我尝试将其移植到不支持“静态内联”的旧C编译器。这是bcc - Bruce的C编译器。

我可以在替换

的头文件中使用命令吗?
static inline void

void

在包含此头文件的所有程序中?

2 个答案:

答案 0 :(得分:5)

当您必须定位不支持某些功能的编译器时,通常在代码中使用宏,而不是尝试使用宏修改代码。

在这种情况下,您可以依赖于编译器的方式定义STATIC_INLINE宏,并像这样使用它:

#ifdef BCC_COMPILER
#define STATIC_INLINE
#else
#define STATIC_INLINE static inline
#endif
...
STATIC_INLINE void myfunc(...)

答案 1 :(得分:1)

非常感谢大家的帮助。我必须报告BLUEPIXYcomment

中给出了对我有用的答案
 #define inline

显然,bcc接受static void但不接受static inline void