Дана 24/06/20 10:24PM, sewn написа: > Sure, but why? It is part of the suckless coding style. Since st is a suckless project, it follows the suckless coding style.
* * * I can't speak for those who wrote the suckless coding standard, but as a bystander, I can give this observation. If the question is what is the reasoning behind not using `bool` (or, more accurately, `_Bool`, since `bool` is a macro defined in stdbool.h) type in suckless coding style: - The result of logical operators, such as !, &&, || and relational operators, such as <, <=, >, >= is explicitly int in C99 anyway (check the actual text of the standard if you don't believe me), with possible values 0 and 1 - The type of `expression` in: if (expression) statement if (expression) statement else statement in C99 is "scalar" with value tested for 0 - if unequal, `statement` following `if` is executed, if equal, statement following `else` is executed. Given that, why complicate code by introducing a separate, superfluous, type? Major compilers, such as GCC and Clang/LLVM, are competent enough to optimize for speed or size as needed anyway. Every new iteration of C after C99 introduced more unnecessary cruft. C99 is the best version, although it has its rough edges, one of which is the _Bool type.