К моему удивлению, я только что обнаружил, что C99 stdint.h отсутствует в MS Visual Studio 2003 вверх. Я уверен, что у них есть свои причины, но кто-нибудь знает, где я могу скачать копию? Без этого заголовка у меня нет определений для полезных типов, таких как uint32_t и т.д.
Заголовок C99 stdint.h и MS Visual Studio
Ответ 1
Оказывается, вы можете скачать MS-версию этого заголовка:
https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h
Портативный можно найти здесь:
http://www.azillionmonkeys.com/qed/pstdint.h
Благодаря блогу Software Rambling.
Ответ 2
Просто определите их самостоятельно.
#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
Ответ 3
Обновление: Visual Studio 2010 и Visual С++ 2010 Express оба имеют stdint.h
. Его можно найти в C:\Program Files\Microsoft Visual Studio 10.0\VC\include
Ответ 4
Visual Studio 2003 - 2008 (Visual С++ 7.1 - 9) не претендуют на совместимость с C99. (Спасибо rdentato за его комментарий.)
Ответ 5
Boost содержит файл заголовка cstdint.hpp с типами, которые вы ищете: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp
Ответ 6
Microsoft не поддерживает C99 и не объявила о каких-либо планах. Я считаю, что они намерены отслеживать стандарты на С++, но считают C столь же устаревшим, кроме как подмножество С++.
Новые проекты в Visual Studio 2003 и более поздних версиях имеют параметр "Компилировать как С++ код (/TP)", поэтому любые файлы .c будут скомпилированы как С++.
Ответ 7
Другое портативное решение:
POSH: Портативный источник с открытым исходным кодом
"POSH - это простая, портативная, простая в использовании, легко интегрируемая, гибкая система с открытым исходным кодом, предназначенная для написания кросс-платформенных библиотек и приложений, значительно менее утомительных для создания и порта".
http://poshlib.hookatooka.com/poshlib/trac.cgi
как описано и используется в книге: Написать переносимый код: введение в разработку программного обеспечения для нескольких платформ Брайан Хук http://books.google.ca/books?id=4VOKcEAPPO0C
-Jason