我通常在 C89 中编写 C 代码,现在使用 C99 的一些功能(例如intxx_t
or __VA_ARGS__
or snprintf
)非常有用,甚至至关重要。
在我将我的需求从 C89 扩展到 C99 之前,我想知道哪些 C99 功能得到了广泛支持,哪些功能没有得到广泛支持,甚至被认为是有害的。
我知道我们可以检查目标编译器支持,但这会大大缩小我们的支持范围,并且由于这是针对开源软件的,因此我更希望拥有更广泛的支持。
例如,我们使用 Solaris (suncc) 编译器和 gcc,但我们可能会放弃其他编译器,同时我们可以通过很少的努力来保持兼容性。
例如,我从未在 Windows 上工作过,也不了解 Windows 编译器,但保持 Windows 兼容性会很好。
goto
还是被认为有害 http://en.wikipedia.org/wiki/Considered_harmful.
我以某种方式收集了four反对票。我提出上述声明是为了增加一点轻松性,我对其背后的概念只有 30% 的认真态度。
我预计投反对票的是那些不了解编程语言历史的年轻人。不是每一个 goto
是邪恶的,但是——与我编写的 100% 纯意大利面条代码(数百万行 FORTRAN 66)相比——替换尽可能多的代码是合理且高效的goto
带有结构化语句的语句 (for
, while
, do .. while
, switch
)尽可能。但有时一个goto
当它避免复杂性时就很好了,例如使用额外的标志变量来打破多个嵌套循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)