SORU
16 HAZİRAN 2015, Salı


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
16 HAZİRAN 2015, Salı


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_defined15.

Bir uygulama ve makrolar bool (true) ve yanlış tanımsız sonra belki yeniden tanımlamak olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Film Riot

    Film Riot

    16 NİSAN 2006
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • Huot Media

    Huot Media

    7 Mayıs 2010