我通常用 C89 编写 C 代码,现在 C99 的一些特性(如intxx_t
or__VA_ARGS__
或snprintf
)非常有用,甚至可能是至关重要的。
在我将我的要求从 C89 扩展到 C99 之前,我想知道哪些 C99 功能得到了广泛支持,哪些没有得到广泛支持,甚至被认为是有害的。
我知道我们可以只检查我们的目标编译器支持,但这会大大缩小我们的支持范围,因为这是针对开源软件的,所以我希望获得更广泛的支持。
例如,我们使用 Solaris (suncc) 编译器和 gcc,但我们可能会移除其他编译器,同时我们只需很少的努力就可以保持兼容性。
例如,我从来没有在 Windows 上工作过,我也对 Windows 编译器一无所知,但保持 Windows 兼容性会很好。