包括iostream中断uint32_t定义(C)

Dux*_*uxa -2 c iostream uint32-t

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

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

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

#include <iostream> 
Run Code Online (Sandbox Code Playgroud)

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

它被定义为这样

typedef unsigned __int32 uint32_t;
Run Code Online (Sandbox Code Playgroud)

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

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

当我将鼠标悬停在现在的下划线uint32_t时,会出现以下情况:

uint32_t变量"uint32_t"不是类型名称

评论这条线

#include <iostream>
Run Code Online (Sandbox Code Playgroud)

该程序按预期编译和运行.

是什么赋予了?

边题.我使用uint32_t的原因是为了保证我的变量是32位长,因为我正在进行大量的位操作.使用unsigned int会安全吗?

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

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

typedef unsigned __int32 uint32_t;
Run Code Online (Sandbox Code Playgroud)

bol*_*lov 5

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

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

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

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

  • @Duxa,你是如何在C ???中使用`iostream`的? (4认同)