typedef int bool;
#define false 0
#define true 1
funziona bene. Le intestazioni di Windows fanno la stessa cosa. Non c'è assolutamente motivo di preoccuparsi della memoria "sprecata" spesa memorizzando un valore a due bit in un int
.
Come Alexandre ha menzionato in un commento, il compilatore C di Microsoft (in bundle con Visual Studio) doesn't support C99 e probabilmente non lo farà. È un peccato, perchée molte altre funzionalità molto più utili sono supportate in C99, ma non in Visual Studio. È rimasto bloccato in passato, supportando solo lo standard più vecchio noto come C89. Sono sorpreso che tu non abbia incontrato un problema nel tentativo di definire variabili da qualche parte oltre l'inizio di un blocco. Che mi morde ogni tempo scrivo codice C in VS.
Una possibile soluzione è configurare Visual Studio per compilare il codice come C++. Quindi quasi tutto ciò che leggi nel libro C99 funzionerà senza il soffocamento del compilatore. In C++, è incorporato il tipo bool
(sebbene sia un tipo da 1 byte in modalità C++, piuttosto che un tipo da 4 byte come in modalità C). Per apportare questa modifica, è possibile modificare le impostazioni di compilazione del progetto all'interno dell'IDE o semplicemente rinominare il file in modo che disponga di un'estensione cpp
(anziché di c
). VS imposterà automaticamente la modalità di compilazione di conseguenza.
Le versioni moderne di Visual Studio (2013 e successive) offrono un supporto migliorato per C99, ma non è ancora completo. Onestamente, la soluzione migliore se stai cercando di imparare C (e quindi C99 al giorno d'oggi) è solo prendere un compilatore diverso. MinGW è una buona opzione se stai usando Windows. Un sacco di persone come il Code::Blocks IDE
fonte
2011-12-18 01:24:16
'' è C99. Visual Studio non la supporterà mai. Trova un altro compilatore. –
Il tempo apparentemente freddo non conosce limiti (ad esempio potrebbe essersi innevato nell'oltretomba), il supporto C99 sta finalmente iniziando con VS 2013, incluso stdbool.h. [http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library-support-in-visual-studio-2013.aspx] – John
@AlexandreC .: ciao dal 2015!L'ultimo VS ha stdbool.h ora! * ridacchia * – Mints97