2

我正在开发一个有时使用的 C 库

 static inline void myfunc(...)

定义函数时。

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

我可以在头文件中使用替换的命令吗

static inline void

void

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

4

2 回答 2

5

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

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

#ifdef BCC_COMPILER
#define STATIC_INLINE
#else
#define STATIC_INLINE static inline
#endif
...
STATIC_INLINE void myfunc(...)
于 2017-01-01T13:26:59.443 回答
1

非常感谢大家的帮助。我必须报告BLUEPIXY在他的评论中给出了对我有用的答案:

 #define inline

显然 bcc 确实接受static void但不接受static inline void

于 2017-01-01T13:51:37.207 回答