如果我导入 std.c 库而不是将库包含在 C 中,C 代码是否会使用 D 编译器进行编译,或者是否存在其他向后兼容性问题?

最佳答案

D 中有几个微妙之处可能会使 C 代码的行为不完全符合您的预期。例如,整数提升规则并不完全相同(但几乎相同),并且初始化规则不同(例如,浮点值——包括此类数组——被初始化为 NaN)。此外,最近不推荐使用 C 函数指针语法,因此您可能必须将某些 C 类型语法转换为等效的 D 语法。

但是,一般来说,向后兼容性非常关注,并且大多数 C 代码应该可以在 D 中以与 C 中相同的语义很好地编译(或进行非常少量的更改)。

另请注意 std.c 已弃用;请改用 core.stdc

关于c - 如果使用 C 库,D 是否向后兼容 C?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10863988/

10-09 02:13