Microsoft Visual Studio 2010 поддерживает C99? - PullRequest
13 голосов
/ 14 июля 2011

Я хотел бы знать, поддерживает ли Microsoft Visual Studio 2010 C99. Если нет, то как я могу использовать стандартные типы, такие как intptr_t и uintptr_t?

Ответы [ 3 ]

11 голосов
/ 14 июля 2011

Visual Studio 2010 не поддерживает синтаксис C99. stdint.h - это очень распространенный файл во всех компиляторах C / C ++, хотя он существует в установке Visual C ++ 10.0, включенной в Windows SDK (независимо от используемой версии Visual Studio) .

stdint.h можно найти в:

  • C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ include \

Этот файл предоставляет typedef для intptr_t. Не стесняйтесь использовать его в любом проекте C или C ++, который вам нравится.

8 голосов
/ 14 июля 2011

Насколько я могу судить, Visual Studio 2010 не поддерживает C99.Чтобы использовать типы из stdint.h, вам придется использовать typedef.Кросс-платформенный способ сделать это будет:

#ifdef _WIN32
typedef signed short int16_t
#else
#include <stdint.h>
#endif

См. Также этот вопрос: Поддержка Visual Studio для новых стандартов C / C ++?

2 голосов
/ 14 июля 2011

Microsoft C не поддерживает C99. Тем не менее, MSVC 16 (то, что поставляется с Visual Studio 2010) реализует большую часть будущего стандарта C ++ 0x. C ++ 0x включает в себя некоторые заголовки из C99, такие как stdint.h и inttypes.h - вот почему вы получаете некоторые кусочки C99 с MSVC 16.

Будьте благодарны за мелочи (хотелось бы, чтобы MSVC поддерживал немного больше C99 при компиляции прямых файлов C).

...