2011-07-14 16 views
13

Me gustaría saber si Microsoft Visual Studio 2010 es compatible con C99. Si no, ¿cómo puedo usar los tipos estándar como intptr_t y uintptr_t?¿Microsoft Visual Studio 2010 es compatible con c99?

+0

posible duplicado de [Soporte Visual Studio para nuevos estándares C/C++?] (Http://stackoverflow.com/questions/146381/visual-studio-support-for-new-cc-standards) –

+1

Esa es la edición 2008 , entonces no es un duplicado exacto. –

+0

http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ prácticamente todo lo que hay para decir sobre el tema. –

Respuesta

8

Por lo que puedo decir, Visual Studio 2010 no es compatible con C99. Para usar tipos de stdint.h, deberá usar un typedef. Una forma de plataforma cruzada para hacer esto sería:

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

Ver también esta pregunta: Visual Studio support for new C/C++ standards?

+0

¿Qué hay del factor de impresión que uso? En C99 ** zd ** funciona bien para entornos ** de 32 bits y de 64 bits **. – thetna

+0

Disculpe, ¿qué es un "factor de impresión" y qué es una "zd"? –

+1

**% zd ** factor de impresión para ** intptr_t ** como **% d ** para ** int ** – thetna

11

Visual Studio 2010 no admite la sintaxis C99. stdint.h es un archivo muy común en todos los compiladores de C/C++, que existe en una instalación de Visual C++ 10.0, incluida con el Windows SDK (independientemente de la versión de Visual Studio que utilice).

stdint.h se puede encontrar en:

  • C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ include \

Este archivo proporciona un typedef para intptr_t . Siéntase libre de usarlo en cualquier proyecto de C o C++ que desee.

2

Microsoft C no es compatible con C99. Sin embargo, MSVC 16 (lo que se proporciona con Visual Studio 2010) implementa una buena porción del próximo estándar C++ 0x. C++ 0x está incorporando algunas de las cabeceras de C99, tales como stdint.h y inttypes.h - es por eso que usted consigue algunos fragmentos de C99 con MSVC 16.

estar agradecido por las cosas pequeñas (me gustaría MSVC apoyó un poco más de C99 al compilar archivos C directos).

Cuestiones relacionadas