Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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++ C与C的关系&x2B+;标准库_C++_C_Language Lawyer - Fatal编程技术网

C++ C与C的关系&x2B+;标准库

C++ C与C的关系&x2B+;标准库,c++,c,language-lawyer,C++,C,Language Lawyer,这个问题与编程或特定的语言概念没有直接关系。我的问题是,我们能否使用对C国际标准(例如C11)的引用来提供规范性引用,以描述C++中C库中的任何概念 更具体地说,在N3797::18.3.3[c.limits]中定义的头中描述了c库头。但是C标准提供了有关内容的更全面信息,而不是N3797工作草案 代码> C11/COD>中定义的 C库的所有内容对于 C++ 11 C库中定义的 C++ +代码>实现,或者不能依赖于 C++ 标准提供的内容。C11,在C++11之前,引用的C标准是C90。这在

这个问题与编程或特定的语言概念没有直接关系。我的问题是,我们能否使用对
C
国际标准(例如
C11
)的引用来提供规范性引用,以描述
C++
C
库中的任何概念

更具体地说,在
N3797::18.3.3[c.limits]
中定义的头
中描述了
c库
头。但是
C
标准提供了有关
内容的更全面信息,而不是
N3797
工作草案

<>代码> C11/COD>中定义的<代码> C库<代码>的所有内容对于 C++ 11 <代码> C库<代码>中定义的<代码> C++ +代码>实现,或者不能依赖于 C++ <代码>标准提供的内容。C11,在C++11之前,引用的C标准是C90。这在
1.2节
规范性参考文件中有说明:

以下参考文件对于本文件是必不可少的 本文件的应用。凡是注日期的引用文件,仅适用于 引用适用。凡是不注日期的参考文件,其最新版本为 参考文件(包括任何修订)适用

包括:

  • ISO/IEC 9899:1999,编程语言-C

  • ISO/IEC 9899:1999/Cor.1:2001(E),编程语言-C,技术勘误1

  • ISO/IEC 9899:1999/Cor.2:2004(E),编程语言-C,技术勘误2

  • ISO/IEC 9899:1999/Cor.3:2007(E),编程语言-C,技术勘误3

还说,

ISO/IEC 9899:1999第7条和 ISO/IEC 9899:1999/Cor.1:2001和ISO/IEC第7条 9899:1999/Cor.2:2003以下称为C标准库。1

C++标准使用C标准库引用C99和TCS,并在C++与C.</P>时明确表示。 C标准库的第17.2节说:

  • C++标准库也提供了 C标准库,适当调整以确保静态类型安全
  • 许多库函数的描述依赖于C标准 用于这些函数的签名和语义的库。总共 在这种情况下,应省略限制限定符的任何用法
  • 与C标准库名称.h文件相对应的cname头文件包含在
    17.6.1.2
    头文件中,其中包括:

    除第18条至第30条和附件D中另有说明外,以下内容: 每个标题cname应与相应标题cname相同 标题名.h,如C标准库(1.2)或C Unicode TR,视情况而定,好像通过包含。在C++标准中 但是,库中的声明(已定义的名称除外 因为C)中的宏在名称空间的名称空间范围(3.3.6)内 std。未指定这些名称是否首先在 然后通过std将全局命名空间作用域和注入命名空间 显式使用声明(7.3.3)

    climits
    的内容,因为它们与
    限制有关。h
    包含在第
    18.3.3节中,并说明:

    内容与标准C库标题相同。 [注意:中宏定义的常量类型为 不需要匹配宏引用的类型。-结束注释]


    注意,正如我在上面的评论中提到的,规范引用不是整体的,C++标准必须明确引用标准引用,以应用到C++标准。有关更多详细信息,请参见。

    关于@ShafikYaghmour,据我从asnwer了解,我们只能使用C标准的引用部分作为规范性参考。对吗?据我所知,C++标准必须明确地引用一个规范性的引用,否则我们不能引用一部分规范性引用。我把以上的注释转移到我的答案中,所以我们现在可以删除这些评论。@ SaffiKygMigMug特别是在<代码> <代码>标题的情况下,我们可以依赖C标准所说的,是吗?@DmitryFucintv我想这就是[c.limits]/2想要告诉我们的:“内容与标准c库标题
    ”相同——据我所知,“内容”还包括常量等的规范。