Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cwjcc!gatech!mcnc!decvax!decwrl!sun!pitstop!sundc!seismo!uunet!mcvax!hp4nl!htsa!fransvo
From: fransvo@htsa (Frans van Otten)
Newsgroups: comp.lang.c
Subject: Re: Standard indentation?
Message-ID: <641@htsa.uucp>
Date: 6 Dec 88 10:27:14 GMT
References: 
Reply-To: fransvo@htsa.UUCP (Frans van Otten)
Organization: HTS "A" Amsterdam
Lines: 54

In article  nelson@clutx.clarkson.edu writes:
>I know, this is a religious question.  However, I would like to know if
>anyone has codified a standard for indentation of C programs?

There seems to be a de-facto standard, to which I stronly disagree. I'll
just explain my style:

#define then    /*  as white space; see below  */

int func(a, b, c)
  int a;
  char b;
  double c;
  { if (c > 3.0e10) printf("big\n");
    while (a > 2)
      { putchar(b); putchar(c);
	if (a > 10)
	  then putchar('1');
	  else putchar('2');
      }
  }

1. then must be defined (as white space) because the then-action
   must be at the same level as the else-action. Some people dis-
   agree with this, but look at it this way: *every* if-statement
   can be rewritten into a switch-statement, and in that case, the
   then-action and the else-action are at the same level:

     if (expr)            switch (expr)
       then stat1;          { default: stat1; break;
       else stat2;            case 0:  stat2; break;
			    }

   For shortness, if there is no else-action, you can always write
   the then-part (with or without the 'then') on the same line as
   the if (expr). This doesn't make the program less readable.

2. Indentation always by two spaces. A tab uses too much space.

3. Closing } always straight below opening {. It's easier to see
   where the compound-statement ends.

4. Main rule: something *within* something else *always* indented.
   You can easily see what belongs to what, which is the next state-
   ment, etc.

I have been using this style for some years now. It has proved to me
that it is far more readable then any other style I ever saw. It has
proved useful debugging programs.
-- 
                         Frans van Otten
                         Algemene Hogeschool Amsterdam
			 Technische en Maritieme Faculteit
                         fransvo@htsa.uucp