3 ms·
We are really straying off actual point. Why would you not actively avoid undefined behaviour and instead take risk. Zeroing out variables, checking pointers
by me_me_me 6y ago
We are really straying off actual point.
Why would you not actively avoid undefined behaviour and instead take risk.
Zeroing out variables, checking pointers coming from external modules etc.
Not rallying on a compiler to resolve fancy stuff.
Like the example:
void contains_null_check(int P) {
int dead = P;
if (P == 0)
return;
P = 4;
}
Leave declarations uninitialized or zeroed
Check input.
Work with data.
void contains_null_check(int P) {
int dead;
if (P == 0)
return;
int dead = P
//work
P = 4;
}
This leaves less space for error/interpretation and IMHO it keeps code cleaner.
Any fancy optimizations should be used only for critical path and only when absolutely necessary.