Gotcha (programming)

In programming, a gotcha is a valid construct in a system, program or programming language that works as documented but is counter-intuitive and almost invites mistakes because it is both easy to invoke and unexpected or unreasonable in its outcome.[1]

The classic gotcha in C /C++ is the construct

if (a=b) code;

It is syntactically valid: it puts the value of b into a and then executes code if a is non-zero. Sometimes this is even intended. However most commonly it is a typo: the programmer probably meant

if (a==b) code;

which executes code if a and b are equal.[1] Modern compilers will generate a warning when encountering this construct. To avoid this gotcha, there is a recommendation[2] to keep the constants in the left side of the comparison, e.g. 42 == x rather than x == 42. This way, using = instead of == will cause a compiler error.

See also

References

Look up gotcha in Wiktionary, the free dictionary.
This article is issued from Wikipedia - version of the Thursday, August 20, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.