Дана 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.

Reply via email to