3 ms·
These are all issues a compiler could insert checks for, saving you the time to do it manually, while trading performance for security or correctness. C doesn'
by optymizer 5y ago
These are all issues a compiler could insert checks for, saving you the time to do it manually, while trading performance for security or correctness.
C doesn't trade performance away, so if you'd like to pay the price of these checks, it's on you, the programmer to add them in. C programmers have to put in extra effort to make the executables safer and output correct results.
Other languages trade off performance for safety and/or correctness. The programmers using them have to put in extra effort to make the executables run as fast as they do in C.
Ultimately, programmers tend to make rational choices, and the stockholm syndrome mentioned above is really just C programmers dealing with the consequences of the trade-off they made by using C.
- vyodaiken 5y agoC is designed to allow programmers to insert or remove checks as performance tuning. Compiler UB "optimizations" that remove that ability from the programmer make the language unusable.
- optymizer 5y agoNot knowing what is UB in C is equivalent to not knowing a core part of the C language. In that situation, yes, C would seem unusable for people who have superficial knowledge of it.