-3

编辑:请忽略这个问题。我意识到我是个白痴,非常友善和乐于助人的人指出 iostream 不是 C 而是 C++ 库。

我遇到了一个非常奇怪的问题。

我有一个完整的工作程序(大约 1000 行)。我需要

#include <iostream> 

当我这样做时, uint32_t 的 typedef 会中断。

它是这样定义的

typedef unsigned __int32 uint32_t;

我正在使用 Visual Studio 2017。这是它给出的错误

\vc\tools\msvc\14.15.26726\include\cstdlib(19):错误 C2061:语法错误:标识符“noexcept”

当我将鼠标悬停在带有下划线的 uint32_t 上时,会说以下内容:

uint32_t 变量“uint32_t”不是类型名称

仅评论该行

#include <iostream>

程序按预期编译和运行。

是什么赋予了?

边问。我使用 uint32_t 的原因是为了保证我的变量是 32 位长,因为我正在做很多位操作。使用 unsigned int 会安全吗?

这是我包括的所有内容的列表:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <iostream>

typedef unsigned __int32 uint32_t;
4

1 回答 1

5

声明uint32_t自己是非法的 afaik。不要那样做。C++ 有一个标准的。用那个。它在cstdint.

https://en.cppreference.com/w/cpp/types/integer

如果你在,C那么你需要使用的标题是stdint.h

https://en.cppreference.com/w/c/types/integer

于 2018-10-10T07:23:16.623 回答