Булевий тип у чистому C

Лютий 25th, 2009

В принципі, це й так всі нормальні люди знають, але хай буде у якості нотаток на випадок раптового удару граблями приступу склерозу
Так от, відомо, що у C булівський тип відсутній. Можна використовувати такого шось типу

  1. #ifndef __cplusplus
  2.  
  3. #ifndef bool
  4. typedef char bool;
  5. #endif
  6.  
  7. #ifndef true
  8. #define true    ((bool) 1)
  9. #endif
  10.  
  11. #ifndef false
  12. #define false   ((bool) 0)
  13. #endif
  14.  
  15. #endif   /* not C++ */

Але всі велосипеди було вже давно винайдено й стандартизовано. Слово українській вікіпедії:

stdbool.h — заголовний файл стандартної бібліотеки мови програмування С, котрий містить чотири макроси для роботи з типом даних bool. Даний заголовний файл з’явився у стандартні C99.

Визначення макросів згідно стандарту IEEE Std 1003.1-2001:

  • bool котрий розширюється до _Bool
  • true котрий розширюється до 1
  • false котрий розширюється до 0
  • __bool_true_false_are_defined котрий розширюється до 1

Категорії: C/C++ | Теґи:, ,

Залишити коментар