My guess would be that if you did it your way, you would have something like this:
if (Libbase) { //start code here
... //5000 lines later
}
else { exit }
Its easier to read if you do the not case first... Otherwise you have a whole program and then you have an else clause just sitting there and you are wondering what it belongs to.
But what you said is correct, you COULD reverse the order. And yes, as explained in another message, the '!' is a NOT. Its just checking for a null pointer.
-Thorrin