What does style look like, part 2

In my previous style post, I took a piece of code from  Robert Sedgewicks algorithms book, and "Hungarian-ized" it.  The routine currently looks like:

#include "list.h"main(C cArg, SZ rgszArg[])  {    I iNode, cNodes = atoi(rgszArg[1]), cNodesToSkip = atoi(rgszArg[2]);    PNODE pnodeT, pnodeCur; InitNodes(cNodes);    for (iNode = 2, pnodeCur = PnodeNew(1); iNode <= cNodes ; iNode++)      { pnodeT = PnodeNew(i); InsertNext(pnodeCur, pnodeT); pnodeCur = pnodeT; }    while (pnodeCur != PnodeNext(x))      {        for (iNode = 1; iNode < cNodesToSkip ; iNode++) pnodeCur = PnodeNext(pnodeCur);        FreeNode(PnodeDeleteNext(pnodeCur));      }    printf("%d\n", Item(nodeCur));  }

Btw, I'll show what this code looks like without hungarian during this series, don't worry :).

Now that it's hungarianized, lets look at the structure.  The first thing that stands out is that it's not completely consistent.  Every indentation is 2 spaces, but sometimes lines are compressed, sometimes not.  This is undoubtedly a concession to the space requirements in the book, it's not likely something you'll find in production code.

Lets re-format the code and see what happens.  First, I'll use the "braces appear on the same line as the conditional, indented 4 characters (K&R)" style:

#include "list.h"main(C cArg, SZ rgszArg[]) {    I iNode, cNodes = atoi(rgszArg[1]), cNodesToSkip = atoi(rgszArg[2]);    PNODE pnodeT, pnodeCur; InitNodes(cNodes);    for (iNode = 2, pnodeCur = PnodeNew(1); iNode <= cNodes ; iNode++) {        pnodeT = PnodeNew(i); InsertNext(pnodeCur, pnodeT); pnodeCur = pnodeT;     }    while (pnodeCur != PnodeNext(x)) {        for (iNode = 1; iNode < cNodesToSkip ; iNode++) pnodeCur = PnodeNext(pnodeCur);        FreeNode(PnodeDeleteNext(pnodeCur));    }    printf("%d\n", Item(nodeCur));}

To me, the code hasn't changed that much.  Lets make another change: Moving each statement to its own line:

#include "list.h"main(C cArg, SZ rgszArg[]) {    I iNode, cNodes = atoi(rgszArg[1]), cNodesToSkip = atoi(rgszArg[2]);    PNODE pnodeT, pnodeCur;     InitNodes(cNodes);    for (iNode = 2, pnodeCur = PnodeNew(1); iNode <= cNodes ; iNode++) {        pnodeT = PnodeNew(i);         InsertNext(pnodeCur, pnodeT);         pnodeCur = pnodeT;     }    while (pnodeCur != PnodeNext(x)) {        for (iNode = 1; iNode < cNodesToSkip ; iNode++)             pnodeCur = PnodeNext(pnodeCur);        FreeNode(PnodeDeleteNext(pnodeCur));    }    printf("%d\n", Item(nodeCur));}

That's somewhat better, the routine takes some more vertical space, but it's a bit clearer what's going on.

Tomorrow, BSD style, and a bunch of other indentation varients.