c - 寻找预处理器命令以删除代码中的命令

标签 c c-preprocessor bcc-compiler

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

 static inline void myfunc(...)

定义函数时。

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

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

static inline void

void

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

最佳答案

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

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

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

关于c - 寻找预处理器命令以删除代码中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415760/

相关文章:

c - 以正确的顺序读取内存需要一些帮助

c++ - 如何在一行中检查没有定义任何预处理器宏?

c - ifndef 问题,警告 [Pe014] : extra text after expected end of preprocessing directive

c - C 中宏定义 (#define) 的良好编程习惯

c++ - "Member function must be called or its address taken in function"C++错误

c - 如何使用 Bruce 的 C 编译器进行编译以获得在 8086 处理器上运行的 asm 文件

我可以将长数组初始化减少为 C 中的短初始化列表吗?

c - scanf() 将换行符留在缓冲区中

c - Ncurses waddch 不打印光标位置处的字符