可以将C89代码与C99代码混合使用吗?

cas*_*rco 7 c c99 c89

我对许多与不同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);

提前致谢 :)

Bar*_*nau 7

C语言没有说C89和C99代码的二进制兼容性.这完全取决于您用于可执行文件不同部分的编译器.

如果你可以使你的库的外部头文件适合C89编译器,我没有看到任何明显的原因它不能工作,除了通常的问题,确保两个编译器可以生成兼容的代码.