'uint32_t' идентификатор не найдена ошибка

Я переношу код из Linux C в Visual С++ для Windows.

Visual С++ не знает #include <stdint.h>, поэтому я прокомментировал это.

Позже я нашел много этих ошибок 'uint32_t': identifier not found. Как это можно решить?

Ответ 1

Этот тип определен в заголовке C <stdint.h>, который является частью стандарта С++ 11, но не стандартным в С++ 03. Согласно странице Википедии в заголовке, она не поставляется с Visual Studio до VS2010.

Тем временем вы, вероятно, могли бы подделать свою собственную версию заголовка, добавив typedef, чтобы отобразить типичные типы пользователей Microsoft типы, ожидаемые C. Например:

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */

Надеюсь, это поможет!

Ответ 2

Вы можете #include <cstdint>. Это часть стандарта С++ с 2011 года.

Ответ 3

Boost. Config предлагает эти typedefs для наборов инструментов, которые не предоставляют их изначально. Документация для этой конкретной функции приведена здесь: Стандартные типы целых чисел

Ответ 4

Существует реализация, доступная на странице msinttypes - "Этот проект заполняет отсутствие stdint.h и inttypes.h в Microsoft Visual Студия".

У меня нет опыта с этой реализацией, но я видел, как он рекомендовал других в SO.

Ответ 6

У меня такая же ошибка, и я исправил ее, включив в файл следующие

#include <stdint.h>

в начале файла.

Ответ 7

Мне пришлось запускать проект в VS2010, и я не мог вносить никаких изменений в код. Моим решением было установить vS2013, а в VS2010 - VС++ Directories- > IncludeDirectories для программных файлов (x86)\Microsoft Visual Studio 12.0\VC\include. Затем мой проект был составлен без каких-либо проблем.