Буферный тип данных C99?

Что такое булевский тип данных C99 и как его использовать?

Ответ 1

Включить <stdbool.h> header

#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 предварительной обработки. Oни находятся
    • true: расширяется до целочисленной константы 1,
    • false: расширяется до целочисленной константы 0 и
    • __ bool_true_false_are_defined который расширяется до целочисленной константы 1.
  • 4 Несмотря на положения п. 7.1.3, программа может быть неопределенной и, возможно, тогда переопределить макросы bool, true и false.

Ответ 2

Пожалуйста, посмотрите здесь ответ на этот связанный поток, найденный на DaniWeb.

извлечен и указан здесь для удобства: -


использование новых ключевых слов в c99

_Bool: логический тип C99. Использование _Bool напрямую рекомендуется только в том случае, если вы сохранение устаревшего кода, который уже определяет макросы для bool, true или ложный. В противном случае эти макросы стандартизованный в <stdbool.h>заголовок. Включите этот заголовок, и вы может использовать bool так же, как и в С++.

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

int main ( void )
{
  bool b = true;

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

  return 0;
}