Sun coding style recommendation is to follow
K&R Indent style.
Personally, I try and follow (as much as it is possible) the same style I chose years ago, in all programming languages I use.
So I put an initial capital letter to function names (yes, I think that's Microsoft style... But I chose it because it was pleasing for me) and I align the braces because I find it visually more pleasing/readable/easier to track.
Now, should I make a library, the official API would use lower case initials, and if I hack somebody else's code, I just follow the coding conventions used in the source I find.
Computer programming field is full of such senseless discussions (senseless because it leads nowhere, as good arguments are given on each side) such as indentation style, braces against 'end', tabs vs. spaces, initial capitals or not, and so on.
The empty statement problem is coming from an unfortunate trick possible from C times, where compact coding was seen as cool. I recall I was impressed, coming from Pascal world, to see lines like:
for (i = 0; x = readchr(); i++); (pseudo code)
although a good coder would put the semi-colon on a line of its own to make it standing out, or, better, would put the readchr call in the statement.
So,
for (); {} is alas syntactically correct (loop with empty statement followed by an arbitrary block of code). At least, in Java, strong typing of boolean makes
if (a = b) incorrect in most cases!