C99 логический тип данных? - PullRequest
       46

C99 логический тип данных?

86 голосов
/ 22 января 2011

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

Ответы [ 2 ]

103 голосов
/ 22 января 2011

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

Пожалуйста, ознакомьтесь с ответом здесь по этой связанной теме, найденной на 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;
}

...