gpt4 book ai didi

C++ 对长度说明符的支持

转载 作者:bug小助手 更新时间:2023-10-28 10:50:52 25 4
gpt4 key购买 nike

cplusplus.com reference for printf我看到了“长度”格式的规范,但它包含注释:

Yellow rows indicate specifiers and sub-specifiers introduced by C99. See <cinttypes> for the specifiers for extended types.

我的问题专门针对 hh长度格式。这是一个“黄色”行。使用 hh 格式化在 Visual Studio 中的行为符合预期,但我想知道这是因为 Visual Studio 也是 C 编译器还是因为 hh C++ 真的支持吗?

最佳答案

在 C++11 之前,C++ 标准使用 C90 作为规范性引用,因此 C99 功能仅在 C++11 中受支持。尽管编译器可以在 C++11 之外免费支持它们作为扩展。我怀疑这只适用于更新版本的 Visual Studio given their relatively recent drive to support C99cremno indicates that it is supported since 2015 .

如果我们查看 C++11 草案标准部分 1.2 规范性引用 [intro.refs] 它说:

The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

包括:

  • ISO/IEC 9899:1999, Programming languages — C

还说:

The library described in Clause 7 of ISO/IEC 9899:1999 and Clause 7 of ISO/IEC 9899:1999/Cor.1:2001 and Clause 7 of ISO/IEC 9899:1999/Cor.2:2003 is hereinafter called the C standard library.1

在 C++11 之前这是:

  • ISO/IEC 9899:1990, Programming languages - C

如果我们尝试 an example在 gcc 中使用 -std=c++03 -pedantic 它警告:

warning: ISO C++98 does not support the 'hh' gnu_printf length modifier [-Wformat=]

关于C++ 对长度说明符的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009189/

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