首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用ANSI (C89)吗?

我应该使用ANSI (C89)吗?
EN

Stack Overflow用户
提问于 2012-08-13 05:25:05
回答 4查看 8.5K关注 0票数 20

现在是2012年。我正在用C写一些代码,我应该继续使用C89吗?还有不支持C99的编译器吗?

我不介意用/* */代替//

我对C89 forbids mixing declarations and code不太确定。我倾向于认为将所有声明放在一个地方更具可读性,如果不是这样,函数就太长了。

VLA看起来很有用,但我还不需要它们。

如果我没有令人信服的理由,我应该坚持使用C89吗?还有其他我没有考虑到的事情吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-13 05:26:26

除非您知道不能使用C99兼容的编译器(the Visual Studio C compiler is the most prominent candidate),否则没有充分的理由不使用C99给您的好处。

但是,即使您需要支持该编译器,您也可以使用一些C99特性-只是不是所有特性。

C99的一个非常方便的特性是能够执行for(int i = ...),而不是必须在函数之上声明循环变量-特别是因为C实际上有一个块作用域。在这种声明中,把它放在最上面并不能提高可读性。

票数 17
EN

Stack Overflow用户

发布于 2012-08-13 05:32:25

C89被C99取代有一个(或很多)原因。如果您确定没有C99编译器可用于您的特定工作(除非您坚持使用从未正式支持C的Visual Studio ),那么您需要继续使用C89,但除此之外,您肯定应该将自己置于一个可以从最近几年的20+改进中受益的位置。C99本身并不会变慢。

也许您甚至应该考虑看看最新的C11标准。有一些处理Unicode的重要修复,任何C程序员都可以从中受益(标准中的其他更改绝对是最小的)……

票数 10
EN

Stack Overflow用户

发布于 2012-08-13 05:34:46

好的代码是性能、可伸缩性、可读性和可维护性的混合体。

在我看来,C99使代码更容易阅读和维护。非常非常少的编译器不支持C99,所以我建议使用它。使用可用的工具,除非您确定需要使用需要早期标准的编译器来编译您的项目。

查看以下链接,了解有关C99优势的更多信息:

http://www.kuro5hin.org/?op=displaystory;sid=2001/2/23/194544/139

http://en.wikipedia.org/wiki/C99#Design

请注意,C99还支持snprintf等库函数,这些函数非常有用,并且具有更好的浮点支持。此外,我发现宏非常有帮助,特别是在处理数学密集型应用程序(如加密算法)时。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11925998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档