【问题标题】:Does Microsoft visual studio 2010 support c99?Microsoft Visual Studio 2010 是否支持 c99?
【发布时间】:2011-10-05 01:22:52
【问题描述】:

我想知道 Microsoft Visual Studio 2010 是否支持 C99。如果没有,我该如何使用intptr_tuintptr_t 等标准类型?

【问题讨论】:

标签: c visual-studio visual-studio-2010 c99


【解决方案1】:

Visual Studio 2010 不支持 C99 语法。 stdint.h 是所有 C/C++ 编译器中非常常见的文件,它确实存在于 Visual C++ 10.0 安装中,包含在 Windows SDK 中(无论您使用的 Visual Studio 版本如何)。

stdint.h 位于:

  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\

该文件确实为intptr_t 提供了类型定义。随意在您喜欢的任何 C 或 C++ 项目中使用它。

【讨论】:

    【解决方案2】:

    据我所知,Visual Studio 2010 不支持 C99。要使用 stdint.h 中的类型,您必须使用 typedef。一种跨平台的方法是:

    #ifdef _WIN32
    typedef signed short int16_t
    #else
    #include <stdint.h>
    #endif
    

    另请参阅此问题: Visual Studio support for new C / C++ standards?

    【讨论】:

    • 我使用的打印系数怎么样?在 C99 中,zd 适用于 32 位和 64 位 环境。
    • 对不起,什么是“打印因子”,什么是“zd”?
    • %zd intptr_t 的打印因子为 int%d >
    • 只要确保选择真正的类型,而不是示例中的“signed short”占位符。
    • @thetna 这不叫“打印因子”,它叫“转换说明符”。
    【解决方案3】:

    Microsoft C 不支持 C99。但是,MSVC 16(随 Visual Studio 2010 提供的)实现了即将到来的 C++0x 标准的很大一部分。 C++0x 合并了 C99 的一些标头,例如 stdint.hinttypes.h - 这就是为什么您会在 MSVC 16 中获得一些 C99 的花絮。

    感谢小事(我希望 MSVC 在编译纯 C 文件时支持更多的 C99)。

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      相关资源
      最近更新 更多