【问题标题】:C language evolvesC语言进化
【发布时间】:2011-03-27 17:24:06
【问题描述】:

1) C 语言的最新版本是什么? 2) GCC 如何遵守它? 3) 对于一个老 C 程序员来说,新语言的主要区别是什么?

我问这个是因为我最近了解到(一个新功能),我们实际上可以将值赋予一个结构,例如:

struct t
{
   int i;
   char c;
} s;
s = (struct t){exponent, coefficient};

所以我想知道我在编程时可能会遗漏的其他东西......

谢谢, 贝科

【问题讨论】:

标签: c coding-style standards new-operator


【解决方案1】:

C 语言的最新版本似乎是 C99。在众多变化中,最重要的恕我直言:

  • restrict指针
  • 可变长度数组
  • 内置复数
  • 变量声明与代码混合
  • C++ 风格// cmets

Here 是一个更大的列表。

【讨论】:

    【解决方案2】:

    最后一个标准是C99。我不使用这个标准,因为 GCC 还没有完全支持。 (see here)

    有“C1X”,但现在谈论它还为时过早。

    关于 C99 的新特性,请参阅以下帖子:

    What are the most useful new features in C99?

    【讨论】:

      【解决方案3】:

      WG 14 小组正在制定下一个标准,他们的主页is here。 “News 2010-12-05”链接将您带到当前草稿的 PDF,标有“201x”。第 6 和第 7 段强调了变化。谷歌搜索“+gcc +c201x”给出了合理的命中,没有什么可以钉在墙上的。这动作慢得像蜗牛,C99 也没有普遍实现。

      【讨论】:

      • ISO C 标准总是清楚地说明与以前版本相比的重大变化,就在前言的第 6 段。
      • 别忘了微软的编译器根本不支持 C99 —— 显然他们没有这样做的打算。见,例如connect.microsoft.com/VisualStudio/feedback/details/485416/…,但是如果你在网上看,你会发现很多关于这个的焦虑。这真是太可惜了,因为 C99 非常好用。但如果你想编写可移植的代码,那不是一个选择。
      • 不要给带有链接的页面的链接,给出最终的链接,因为页面会改变......就像这个一样。
      猜你喜欢
      • 2013-04-08
      • 1970-01-01
      • 2022-11-15
      • 2022-01-10
      • 2011-07-22
      • 2012-06-06
      • 2010-12-14
      • 2018-02-26
      • 2017-06-08
      相关资源
      最近更新 更多