Tipe data C99 boolean?

93

Apa tipe data Boolean C99 dan bagaimana cara menggunakannya?

eonil
sumber

Jawaban:

109

Sertakan <stdbool.h>tajuk

#include <stdbool.h>

int main(void){
  bool b = false;
}

Makro truedan falseberkembang menjadi 1dan 0masing - masing.

Bagian 7.16 jenis dan nilai Boolean< stdbool.h >

  • 1 Header <stdbool.h>mendefinisikan empat makro.
  • 2 Makro
    • bool berkembang menjadi _Bool.
  • 3 Tiga makro lainnya cocok untuk digunakan dalam perintah #if preprocessing. Mereka
    • true: yang meluas ke konstanta integer 1,
    • false: yang meluas ke konstanta integer 0, dan
    • __bool_true_false_are_defined yang meluas ke konstanta integer 1.
  • 4 Terlepas dari ketentuan 7.1.3, sebuah program mungkin tidak baik dan mungkin kemudian memperbaiki makro bool, benar, dan salah.
Prasoon Saurav
sumber
17
Perlu juga dicatat bahwa konversi ke _Bool(dengan penugasan, cast, dll.) Secara efektif dengan mengawali ekspresi dengan !!.
R .. GitHub STOP HELPING ICE
52

Silakan periksa jawabannya di sini di utas terkait ini yang ditemukan di DaniWeb .

diekstrak dan dikutip di sini untuk referensi yang mudah: -


penggunaan kata kunci baru di c99

_Bool : Jenis boolean C99. Menggunakan _Bool secara langsung hanya disarankan jika Anda mempertahankan kode lama yang sudah menentukan makro untuk bool, true, atau false. Jika tidak, makro tersebut distandarisasi di <stdbool.h> header. Sertakan header itu dan Anda dapat menggunakan bool seperti yang Anda lakukan di C ++.

#include <stdio.h>
#include <stdbool.h>

int main ( void )
{
  bool b = true;

  if ( b )
    printf ( "Yes\n" );
  else
    printf ( "No\n" );

  return 0;
}

evandrix
sumber
18
1 untuk penjelasan mengapa _Boolada bersama bool. Sangat membantu untuk memahaminya.
eonil