[Beginner, C] If we can represent true/false with 1/0, why do we need the stdbool library and boolean variables?

https://programming.dev/post/47210489

[Beginner, C] If we can represent true/false with 1/0, why do we need the stdbool library and boolean variables? - programming.dev

I saw one example int x = 10; int y = 5; bool isGreater = x > y; printf("%d", isGreater); But I could write this int x = 10; int y = 5; printf("%d", x > y); I am a compete beginner and I have no real reason why I would or would not want to deal boolean variables, but I want to understand their raison d’être.

code is read more often that it is written. booleans are actually just integers under the hood but explicitly using booleans communicates your intent. you’re saying to the next guy that “if this is something other than 1 or 0 something has gone wrong”.

when it comes to C specifically, the bool type was a pretty late addition because as you say, an integer can do the job. but it’s very good for organisation, and it also allows the compiler to make some assumptions about how the variable can be accessed. if you know something can only be in two states, you can shove a whole bunch of them into the same byte of memory.

Thanks! I did indeed see a reference somewhere, saying that it makes the code easier to read too. :)