C type system strikes back
Today is one of those days when C++ surprises me. Here is a snippet:
#include <stdint.h> #include <stdio.h> int main() { const int64_t a = 3; if (a < -0x80000000) printf("%lld is negative\n", a); return 0; }
This time the surprise comes from the intricacies of the C type system.
Hint: -0x80000000 is mathematically INT_MIN.
In case you’re wondering, it is not about improving the above snippet. It is about actually seeing a piece of code like this in the wild. It looks correct. But it is incorrect.
Categories: Other
Comments (0)
Trackbacks (0)
Leave a comment
Trackback