Neden?'In stdbool.h içerir #sahte sahte tanımlamak
Orada derleyici bir hata işaret edildikten sonra, stdbool.h
dosya içerir (diğer şeyler arasında) ise şu satırları dikkatimi çekti:
#define bool bool
#define false false
#define true true
stdbool.h
C Bir Başlık olsa bile __cplusplus
yürüttüğü #ifdef
bir blok içinde dolaylı olarak, dolayısıyla c etiketi bulunan ediyorlar.
Bu tanımlar ne gerek var? İşleyişi ile ilgili bazı nedenlerden dolayı gerekli olduklarını düşünüyorum ama çınlama yapar standart ya da parçası olanlar dahil etmek için elinde ne olduğunu merak ediyorum.
CEVAP
stdbool.h
C Bir Başlık C başlık değil. Genellikle true
false
zaten C anahtar kelimeler çünkü C programlarında bulunamadı .
Eğer C programı stdbool.h
içeriyorsa sonuç olarak, taşıdık-C programı (örneğin C gibi derlenen bir C programı) olduğunu oldukça açık bir göstergesidir. Bu durumda, G GCC stdbool.h
: yorum başına bir GNU oluşumu olarak C modunda stdbool.h
destekler
/* Supporting <stdbool.h> in C is a GCC extension. */
#define _Bool bool
#define bool bool
#define false false
#define true true
...
/* Signal that all the definitions are present. */
#define __bool_true_false_are_defined 1
Tin aynı şekilde, G ile uyumluluk için C stdbool.h
destekler .
Değerleri bilerek burada yerleşik C geleneksel C99 tanımları yerine Türüne göre tanımlanır. Makro olarak muhtemelen gerektiren C99 standard ile bazı uyumluluk sağlamak için tanımlanmıştır
Başlık aşağıdakileri tanımlayacaktırmakrolar: *,
true
, , *false
__bool_true_false_are_defined
15.Bir uygulama ve makrolar bool (true) ve yanlış tanımsız sonra belki yeniden tanımlamak olabilir.
Neden CSS sahte öğeleri ile çalışır?...
Neden '' in ('abc'...
Neden pthread_cond_wait sahte wakeups ...
Neden&; true " " == JavaScript sa...
Ne amacı da budur .SAHTE bir makefile?...