Вопрос

К моему удивлению, я только что обнаружил, что C99 stdint.h отсутствует в MS Visual Studio 2003 и выше.Я уверен, что у них есть свои причины, но кто-нибудь знает, где я могу скачать копию?Без этого заголовка у меня нет определений для полезных типов, таких как uint32_t и т.д.

Это было полезно?

Решение

Оказывается, вы можете загрузить MS-версию этого заголовка с:

https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

Портативный можно найти здесь:

http://www.azillionmonkeys.com/qed/pstdint.h

Благодаря Бессвязное программное обеспечениетвой блог.

Другие советы

Просто определите их сами.

#ifdef _MSC_VER

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;

#else
#include <stdint.h>
#endif

Обновить: Visual Studio 2010 и Visual C ++ 2010 Express у обоих есть stdint.h.Его можно найти в C:\Program Files\Microsoft Visual Studio 10.0\VC\include

Visual Studio 2003-2008 (Visual C ++ 7.1 - 9) не претендует на совместимость с C99.(Спасибо rdentato за его комментарий.)

Boost содержит заголовочный файл cstdint.hpp с нужными вам типами: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp

Microsoft не поддерживает C99 и не объявляла о каких-либо планах по этому поводу.Я полагаю, что они намерены отслеживать стандарты C ++, но считают C фактически устаревшим, за исключением подмножества C ++.

В новых проектах в Visual Studio 2003 и более поздних версиях по умолчанию установлена опция "Компилировать как C ++ Code (/TP)", поэтому любые файлы .c будут скомпилированы как C ++.

Еще одно портативное решение:

ШИКАРНЫЙ:Портативный Жгут проводов с открытым исходным кодом

"POSH - это простое, портативное, удобное в использовании, легко интегрируемое, гибкое программное обеспечение с открытым исходным кодом, предназначенное для того, чтобы сделать написание кроссплатформенных библиотек и приложений значительно менее утомительным процессом создания и переноса".

http://poshlib.hookatooka.com/poshlib/trac.cgi

как описано и использовано в книге:Написание переносимого кода:введение в разработку программного обеспечения для нескольких платформ Брайан Хук http://books.google.ca/books?id=4VOKcEAPPO0C

-Джейсон

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top