typedef int bool;
#define false 0
#define true 1
funciona muy bien. Los encabezados de Windows hacen lo mismo. No hay absolutamente ninguna razón para preocuparse por la memoria "desperdiciada" gastada almacenando un valor de dos bits en un int
.
Como Alexandre mencionó en un comentario, compilador de C de Microsoft (incluido con Visual Studio) doesn't support C99 y probablemente no va a. Es desafortunado, porque stdbool.h
y muchas otras características mucho más útiles son compatibles con C99, pero no en Visual Studio. Está atrapado en el pasado, y solo admite el estándar anterior conocido como C89. Me sorprende que no haya tenido problemas para tratar de definir variables en algún lugar que no sea el comienzo de un bloque. Eso me pica cada vez que escribo el código C en VS.
Una posible solución consiste en configurar Visual Studio para compilar el código como C++. Luego casi todo lo que lea en el libro C99 funcionará sin que el compilador se atragante. En C++, el tipo bool
está integrado (aunque es un tipo de 1 byte en modo C++, en lugar de un tipo de 4 bytes, como en el modo C). Para hacer este cambio, puede editar la configuración de compilación de su proyecto dentro del IDE, o simplemente puede cambiar el nombre del archivo para tener una extensión cpp
(en lugar de c
). VS configurará automáticamente el modo de compilación en consecuencia.
Las versiones modernas de Visual Studio (2013 y posteriores) ofrecen compatibilidad mejorada para C99, pero aún no está completa. Honestamente, la mejor solución si estás tratando de aprender C (y por lo tanto C99 en la actualidad) es simplemente elegir un compilador diferente. MinGW es una buena opción si se está ejecutando en Windows. Un montón de gente como el IDE
'' es C99. Visual Studio nunca lo apoyará. Encuentra otro compilador. –
Aparentemente el clima frío no conoce límites (es decir, puede haber nevado en el inframundo), el soporte C99 finalmente está comenzando con VS 2013, incluido stdbool.h. [http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library-support-in-visual-studio-2013.aspx] – John
@AlexandreC .: ¡hola de 2015!¡El último VS ahora tiene stdbool.h! * risita * – Mints97