It's widely regarded as the [cleanest solution](http://stackoverflow.com/a/1674459/166749) (maybe more so by C++ programmers than C programmers), but I can change it.