В языке Си нет типа данных bool и значений true и false.
В заголовочном файле определены макросы bool, true и false, которые позволяют использовать синтаксис аналогичный языку C++.
#include <stdio.h> // prinf() #include <stdbool.h> // bool, true, false int main(){ int counter = 0; bool flag = true; while(flag){ if(counter == 5){ flag = false; } printf("counter = %d, flag = %d \n", counter, flag); counter++; } return 0; }
Значение true = 1, а false = 0. Оператор if выполняется при любом ненулевом значении в скобках оператора.
#include <stdio.h> // printf() #include <stdbool.h> // true, false int main(){ printf("true = %d, false = %d \n", true, false); // true = 1, false = 0 if(-1){ // Будет выведено "only 0 == false" printf("only 0 == false \n"); // Любое ненулевое значение это true (срабатывание if) } }