Yep, there's nothing special about return(0). Or return((0)) for that matter :) It's free to add parentheses there, but none of them are necessary - at least I can't think of a time when they would be necessary!
In theory, I suppose they
could catch a bug of the following form:
| #define DoBothThings(x) Thing1(x); Thing2(x)
...
return(DoBothThings(4));
|
I believe that would go ahead and give you an error, whereas if it didn't have the outer parentheses, it would compile fine and Thing2 would just never get called (silently).
But, I don't think I've ever had such a bug, so I don't see much profit in trying to catch it! And any compiler that has even rudimentary "unreachable code" warnings will work AOK.
- Casey