Булівський тип даних C99?


Відповіді:


109

Включити <stdbool.h>заголовок

#include <stdbool.h>

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

Макроси trueта falseрозгорніть до 1та 0відповідно.

Розділ 7.16 Логічний тип і значення< stdbool.h >

  • 1 Заголовок <stdbool.h>визначає чотири макроси.
  • 2 Макрос
    • bool розширюється до _Bool.
  • 3 Решта три макроси придатні для використання в директивах попередньої обробки #if. Вони є
    • true: що розширюється до цілої константи 1,
    • false: що розширюється до цілої константи 0, і
    • __bool_true_false_are_defined, який розширюється до цілочислової константи 1.
  • 4 Незважаючи на положення 7.1.3, програма може визначити і, можливо, потім переосмислити макрос bool, true і false.

17
Слід також зазначити, що перетворення в _Bool(за призначенням, приведенням тощо) ефективно здійснюється за допомогою префікса виразу перед !!.
R .. GitHub СТОП ДОПОМОГАЙ ЛЕД

52

Будь ласка, ознайомтеся з відповіддю тут на відповідну тему, знайдену на DaniWeb .

витягнуто та процитовано тут для зручного довідки: -


використання нових ключових слів у c99

_Bool : логічний тип C99. Використовувати _Bool безпосередньо рекомендується лише в тому випадку, якщо ви підтримуєте застарілий код, який уже визначає макроси для bool, true або false. В іншому випадку ці макроси стандартизовані в <stdbool.h> заголовку. Включіть цей заголовок, і ви зможете використовувати bool так само, як у C ++.

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

int main ( void )
{
  bool b = true;

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

  return 0;
}


18
+1 для пояснення, чому _Boolіснує поряд з bool. Дуже корисно це зрозуміти.
eonil
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.