Включить определение iostream breaks uint32_t (C)
Изменить: Пожалуйста, не обращайте внимания на этот вопрос. Я понял, что я идиот и очень хорошие и полезные люди отметили, что iostream - это не C, а библиотека C++.
Я столкнулся с очень странной проблемой.
У меня есть полностью рабочая программа (около 1000 строк). Мне необходимо
#include <iostream>
Когда я делаю так, typedef из uint32_t прерывается.
Определяется как таковой
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;
1 ответ
Декларирование uint32_t
ты сам незаконный афаик. Не делай этого. C++ имеет стандартную. Используйте это. Это объявлено в cstdint
,
https://en.cppreference.com/w/cpp/types/integer
Если вы находитесь в C
тогда заголовок нужно использовать stdint.h
вместо: