Im source code of stdbool.h
in LLVM-Projekt, es lautet:Welchen Effekt hat #define X X in C?
/* Don't define bool, true, and false in C++, except as a GNU extension. */
#ifndef __cplusplus
#define bool _Bool
#define true 1
#define false 0
#elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
/* Define _Bool, bool, false, true as a GNU extension. */
#define _Bool bool
#define bool bool
#define false false
#define true true
#endif
In den letzten 4 Zeilen dort aus #define X X
drei Zeilen die sind. Warum würdest du das tun? Welchen Unterschied macht es? Wäre nicht diese Kraft Compiler nur zu ersetzen, sagen wir, true
mit true
?
die downvoter könnten einen Kommentar abgeben? – alk
Ich nicht, aber ich würde sagen, dass eine Präprozessordirektive "wahr" ist, haben Sie die Abstimmung unten. Manche Leute sind Verfechter der Genauigkeit. – john
@john: Ich war mir dessen bewusst, deshalb setze ich es in Anführungszeichen. Es ist jedoch ein boolescher Ausdruck im Kontext der Vorverarbeitung, oder? Haben Sie eine Idee für eine alternative Formulierung? – alk