【问题标题】:It is possible to mix C89 code with C99 code?可以将 C89 代码与 C99 代码混合使用吗?
【发布时间】:2010-12-30 16:27:13
【问题描述】:

我对与不同 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 c99 c89


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    使用#if __STDC_VERSION__ > 199900L 或类似名称代替#ifdef C99。

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多