gpt4 book ai didi

c - include iostream 破坏 uint32_t 定义 (C)

转载 作者:行者123 更新时间:2023-11-30 19:57:09 26 4
gpt4 key购买 nike

编辑:请忽略此问题。我意识到我是个白痴,非常友善且乐于助人的人指出 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): error C2061: syntax error: identifier 'noexcept'

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

uint32_t variable "uint32_t" is not a type name

仅评论该行

#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;

最佳答案

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

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

如果您使用的是C,那么您需要使用的 header 是stdint.h:

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

关于c - include iostream 破坏 uint32_t 定义 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52734662/

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