Вопрос:

Заголовок C99 stdint.h и MS Visual Studio

c++ c visual-studio c99

130478 просмотра

7 ответа

41295 Репутация автора

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

Автор: Rob Источник Размещён: 24.09.2008 09:53

Ответы (7)


82 плюса

41295 Репутация автора

Решение

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

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

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

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

Благодаря блогу Software Rambling .

Автор: Rob Размещён: 24.09.2008 09:54

23 плюса

5824 Репутация автора

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

Автор: Adam Mitz Размещён: 24.09.2008 11:53

45 плюса

7946 Репутация автора

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

#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
Автор: Nicholas Mancuso Размещён: 24.09.2008 01:37

11 плюса

22758 Репутация автора

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

Автор: Nemanja Trifunovic Размещён: 24.09.2008 01:56

5 плюса

9134 Репутация автора

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

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

Автор: Mike Dimmick Размещён: 24.09.2008 04:04

4 плюса

548 Репутация автора

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

POSH: Портативный жгут с открытым исходным кодом

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

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

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

Джейсон

Автор: Jason Harrison Размещён: 25.05.2009 09:51

44 плюса

37873 Репутация автора

Обновление: Visual Studio 2010 и Visual C ++ 2010 Express оба имеют stdint.h. Это можно найти вC:\Program Files\Microsoft Visual Studio 10.0\VC\include

Автор: Ashwin Nanjappa Размещён: 13.04.2010 08:26
Вопросы из категории :
32x32