>>106975726
>What I have problem with are all these hand-wavy /* whatever */ blanks in documentation that require reading text to figure out what are they trying
this is a 100% legit grievance to have about c. and things are even worse than what you describe.
this code
return (a + b + c + d)
is not equivalent to this code
return ((a + b) + (c + d))
even if from the standpoint of the standard, it should be
and nowhere in the standard this will be explained.
thing is
to be good at c you have to consider your compiler as part of the standard, and how it treats subtle-er hints like the above
thats the thing. its perfectly deterministic. but theres people who want c to be portable, and they ignore the fact that compilers also have features.
the parenthesis are a compiler hint which tells it the dependencies of operations, allowing it to, in turn, to write things in such a way that the processor makes optimal usage of its features.
this makes sense
what fucks things up is that were still stuck in the mythos that c is portable bc big corpo, and they want to be able to write once, run everywhere
its not cultists fault
that one is on big corpo
they forced us to divide c into "the idiomatic vanilla, boring shit", and "actual c"
on the other hand
i just fucking love using parenthesis to talk with the compiler
and this makes perfect sense bc order of operations maps directly to operation order duh.
but that in turn maps to operation dependency
which defines what can be out of ordered or instruction level parrallelismed