Union  Union

Here is an email I received in response to my essay on how to write unmaintainable code.

Union : Dave Doolin : doolin@cs.utk.edu : 2000-11-06

I wish I could show you this one function I have…

It defines a union of char[4]; and uint, inititializes the int using a function call, then the argument to return is a huge single line of &&, ||, <<, >>, <, >, == etc. operators. The idea is to return a boolean value. The single comment is /* cool hack, gene */

Now, I don’t really have a problem with the union, nor the long gross return. The real heinousness is that all the test values are literals! Have a little typo accident with emacs, vi or msvc or whatever anywhere in that line, and you get a virtually untraceable bug! The code will compile and run just fine changing values or operators willy nilly! It will even work correctly most of the time!

There is of course, not test function written for this code. Even better, the author is now CEO (Chief Executive Officer) at a startup…

Uh oh… boss just drove in…


CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/feedback/unmain/union.html J:\mindprod\feedback\unmain\union.html
logo
Please email your , letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email. If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind.
mindprod.com IP:[65.110.21.43]
viewYour face IP:[38.107.179.212]
You are visitor number 11.