Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是不是;ANSI C";或;ANSI C++&引用;今天还有什么意义吗?_C++_C_Coding Style_Standards_Ansi C - Fatal编程技术网

C++ 是不是;ANSI C";或;ANSI C++&引用;今天还有什么意义吗?

C++ 是不是;ANSI C";或;ANSI C++&引用;今天还有什么意义吗?,c++,c,coding-style,standards,ansi-c,C++,C,Coding Style,Standards,Ansi C,上次我检查时,说您正在用ANSIC编码等于说“这是符合C99的代码,里面没有其他内容”。现在有了C11和C++11,这种区别还存在吗?ISO/C++2 11是否已被批准为新的ANSI C++和C++标准。 例如,在我的C11 ANSI副本上写着: 由INCITS(国际信息技术标准委员会)作为美国国家标准采用。ANSI批准日期:5/23/2012 < /P> < P>由于C++标准的3种不同修订和C++的“两个半”被广泛使用,我认为今天的术语比以往任何时候都要少。p> 实际上,在给定的时间只有一

上次我检查时,说您正在用ANSIC编码等于说“这是符合C99的代码,里面没有其他内容”。现在有了C11和C++11,这种区别还存在吗?ISO/C++2 11是否已被批准为新的ANSI C++和C++标准。 例如,在我的C11 ANSI副本上写着:

由INCITS(国际信息技术标准委员会)作为美国国家标准采用。ANSI批准日期:5/23/2012 < /P> < P>由于C++标准的3种不同修订和C++的“两个半”被广泛使用,我认为今天的术语比以往任何时候都要少。p>
  • 实际上,在给定的时间只有一个“当前”的C(C++)标准,即最后一个,因为它取代了以前的版本。我在这里说的是,所有这些以前的版本仍然非常相关(通常比最新版本更重要) 历史上,“ANSIC”被用来表示“标准C”,即C89,与“K&R C”和编译器作者发明的各种标准前变体形成对比。这就是为什么《C编程语言》第二版的封面上有一个大大的红色“ANSIC”印章

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

    这一直是一个令人困惑的用法,因为ISO和ANSI都批准了C89和C99。国际标准化组织批准前者为C90,并在发布时对ANSI版本进行了一些布局更改,但假定内容相同。所以“ANSIC”一直是一个ISO标准,“ISOC”一直是一个ANSI标准。唯一的区别是哪个机构监督标准化过程

    按照这种用法(并可能鼓励它继续),GCC的
    -ansi
    标志相当于
    -std=c90
    。它实际上意味着“C90,加上一些与标准不冲突的GNU扩展”

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


    我不认为使用“ANSIC”一词在过去10年中对任何人都有帮助。ANSI批准了C11,但开始说“啊哈!在这种情况下,ANSI C突然就意味着C11!”是没有帮助的。我们可以肯定地说C11是目前的ANSI C标准,但是“ANSI C”这个术语不能被任何合理的期望用于人们清楚地理解它是指C11。< /P> C和C++标准是ISO认证标准。@ AOLKStOK OK,但是ANSI它甚至是另一个组织……ANSI C。可以有很多不同的含义。IMHO唯一一次它具有普遍公认的含义是当它被用于与K&R C形成对比时。@AlokSaven,因为ANSI自动批准了什么ISO标准化?ANSI不会自动批准任何东西。我不确定你是如何得出结论的。我之前的评论说“标准化过程是集成的”,ANSI参与了这个过程,“目前”只有一个ISO标准,只有一个ISO C++标准。所有其他的都被ISO撤回了,我也明白了。Gorpik,如果C++ 03是一个小的更新,我想Tr1是一个小补丁。我想我可以认为这2个组织是同一个组织。now@CharlesBailey:ISO和ANSI可以随时退出,但这并没有改变C++98/03和C89在编写代码方面仍然是最相关的修订版这一事实,而且通常出于兼容性原因(或者因为编译器编写人员不在乎——VC++会在C89之后移动吗?)您不得不求助于它们。此外,我还没有看到完全符合C++11或C11标准的编译器。所以,“目前”有4/5的标准需要记住。我不是说旧版本很重要,但认为旧版本仍然是“当前”有点误导。ANSI参与ISO标准化过程。@user1849534 C11已于2011年12月被批准为新的ISO C标准,ANSI于2012年5月批准。ISO和ANSI是两个具有不同目标的不同组织。@user1849534:ISO是国际组织(总部位于瑞士)。ANSI是美国人(总部设在华盛顿)。他们现在不可能一样了,是吗?;-)@用户1849534您可以说
    ANSI∈ ISO
    不会完全错误。@用户1849534:当前的ISO C标准是当前的ANSI C标准,但您不能“从两侧减去
    C标准”
    ,得出ISO和ANSI是相同的结论;-)你们从哪里知道这一切的|谢谢,所以最好不要再使用这个词了,如果我理解正确的话,它只会有不同的意思,只会在交流中产生噪音。