gpt4 book ai didi

c++ - "ANSI C"或 "ANSI C++"在今天还有意义吗?

转载 作者:可可西里 更新时间:2023-11-01 18:41:56 32 4
gpt4 key购买 nike

上次我检查时,说您正在使用 ANSI C 编码等同于说“这是符合 C99 的代码,其中没有任何其他内容”。现在有了 C11 和 C++11,这种区别还存在吗?它还有某种意义吗?

最佳答案

历史上,“ANSI C”用于表示“标准 C”,即 C89,与“K&R C”和编译器编写者发明的各种预标准变体形成对比。这就是为什么第二版。 《The C Programming Language》一书的封面上有一个大大的红色“ANSI C”印章。

然后有一段时间“ISO C”被用来表示“新标准 C”,即 C99,与“ANSI C”形成对比。

这一直是一个令人困惑的用法,因为 ISO 和 ANSI 都批准了 C89 和 C99。 ISO 批准前者为 C90,并发布了与 ANSI 版本相比有一些布局变化但据称具有相同实质性内容的版本。所以“ANSI C”一直是一个 ISO 标准,而“ISO C”一直是一个 ANSI 标准。唯一的区别是哪个机构负责监督标准化过程。

遵循这种用法(并可能鼓励它继续使用),GCC 的 -ansi 标志等同于 -std=c90。在这种情况下,它实际上意味着“C90,加上一些与标准不冲突的 GNU 扩展”。

我不知道“ANSI C”指的是 C99,但这并不意味着它没有被用来表示那个意思。

我认为在过去 10 年中使用术语“ANSI C”对任何人都没有帮助。 ANSI 批准了 C11,但开始说“啊哈!在那种情况下,ANSI C 突然意味着 C11!”并没有帮助。我们当然可以说 C11 是当前的 ANSI C 标准,但是不能以任何合理的期望使用术语“ANSI C”,即人们会清楚地理解它是指 C11。

关于c++ - "ANSI C"或 "ANSI C++"在今天还有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141956/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com