【问题标题】:Why Microsoft Visual Studio cannot find <stdint.h>? [duplicate]为什么 Microsoft Visual Studio 找不到 <stdint.h>? [复制]
【发布时间】:2023-03-30 00:25:01
【问题描述】:

可能重复:
Visual Studio support for new C / C++ standards?

wiki下面的文字:

C99 标准包括几个新整数类型的定义,以增强程序的可移植性[2]。已经可用的基本整数类型被认为是不够的,因为它们的实际大小是实现定义的,并且可能因不同的系统而异。新类型在硬件通常只支持几种类型并且支持因系统而异的嵌入式环境中特别有用。所有新类型都在 inttypes.h 头文件(C++ 中的 cinttypes 头文件)中定义,并且在 stdint.h 头文件(C++ 中的 cstdint 头文件)中可用。这些类型可以分为以下几类:

我的视觉工作室找不到任何这些文件:

  1. &lt;cstdint&gt;
  2. &lt;cinttypes&gt;
  3. &lt;stdint.h&gt;
  4. &lt;inttypes.h&gt;

为什么?

【问题讨论】:

  • 正如你所说,那是 C99。我不相信 VS 声称支持 C99。
  • 我不认为这是一个重复,因为您的问题非常具体,并且在引用的重复中没有解决。
  • 早期的 Microsoft 编译器,如 Visual Studio .Net 2003,使用 &lt;stddef.h&gt; 而不是 &lt;stdint.h&gt;。您可以在 MSDN 上的 Standard Types 上关注 uintptr_tptrdiff_t 等类型的位置。该页面涵盖 VS2003 到 VS2015。

标签: c++ std stdint


【解决方案1】:

编辑

请注意,从 Visual Studio 2013 开始,C99 library support 已添加到 Visual Studio。

下面的答案是我在 Visual Studio 2013 添加支持之前的旧答案:


MSVC 对 C 语言的支持很差,它们不支持 C90 之后的任何内容。 Herb Sutter 已经公开声明了这一点in his blog

MSVC2012 支持&lt;cstdint&gt;

有一个msinttypes 项目填补了 Microsoft Visual Studio 中 stdint.h 和 inttypes.h 的缺失。

Boost 还提供boost/cstdint.hpp,如果你没有的话。

【讨论】:

  • Visual Studio 2013 (12.0) 有 stdint.h 和 inttypes.h
  • 是的,这是在July 2013 中宣布的。我在 2012 年 10 月发布了这个答案。
  • @JesseGood 因为您的答案是(唯一并且)被接受的一个并且搜索机器指向这个问题:您介意将更新的信息编辑到您的旧帖子中吗?跨度>
猜你喜欢
  • 2011-06-24
  • 2021-04-23
  • 1970-01-01
  • 2023-03-12
  • 2012-12-06
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多