I don't see the huge benefit in "one variable per line", especially considering the number of bookkeeping variables necessary in a language like C, but I will initialize everything when declared.

Also I checked, and _initialization_ (i.e. `int c = 5;`) ≠ _declaration, followed by assignment_ (i.e. `int c; c = 5;`). It's totally valid to put a bunch of initializers at the top of a block in C89, i.e. they can be mixed with the declarations legally. But as I mentioned, an assignment variable is different, and should not be intermixed with declarations in C89.