我对与不同 C 规范相关的许多事情有疑问。
如果我用 C99 编写一个库,我可以在 C89 代码中使用它吗? (仅使用具有 C89 兼容定义的函数)。
例如,这段代码可以在 C89 中使用吗?
共享库的标题:
#ifdef C99
void func (double complex a, double complex b); // C99 function
#endif
/* another C89 compliant function */
void func2 (double a, double b);
提前致谢:)
最佳答案
C 语言没有说明 C89 和 C99 代码的二进制兼容性。这完全取决于您为可执行文件的不同部分使用的编译器。
如果您可以使您的库的外部 header 适合 C89 编译器,我看不出有任何明显的原因无法正常工作,除了确保两个编译器可以生成兼容代码的常见问题。
关于c - 可以将 C89 代码与 C99 代码混合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564314/