我对许多与不同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代码的二进制兼容性.这完全取决于您用于可执行文件不同部分的编译器.
如果你可以使你的库的外部头文件适合C89编译器,我没有看到任何明显的原因它不能工作,除了通常的问题,确保两个编译器可以生成兼容的代码.