View Single Post
  #23  
Old 03-30-2007, 11:21 PM
DrakilorP2P DrakilorP2P is offline
Registered User
DrakilorP2P's Avatar
Join Date: Apr 2006
Posts: 755
DrakilorP2P is just really niceDrakilorP2P is just really nice
A general guideline is to keep the formatting as similar to the rest of the project as possible. It might be a good idea to write a general guideline that all developers abide to.
Here's how the Angband source code is styled:
PHP Code:
written by Robert RuehlmannBen Harrison, and Gwidon SNaskrent

There are lots of things that are commonly considered good style 
for Angband codeThe Vanilla Angband source code is the general guideline.

Here are some of the "rules":

    * 
Don't use floating point calculations.
    * Don'
break savefile compatibility (if not absolutely necessary).
    * 
No C++ codeThat also means no '//' comments.
    * 
Put system dependent code between #ifdef xyz ... #endif /* xyz */ .
    
No "magic numbers". Use #defines. The #defines should be in defines.h rather than the source file, unless they're very local (such as dungeon generation parameters). 

And some code-style guidelines:

    * 
CommentscommentscommentsMulti-line comments should look like:

      
/*
       * A multi-line
       * comment.
       */

      
instead of:

      
/* A multi-line
       * comment */

    
Indentation with tabsBut generally avoid getting lines over 80 characters.
    * 
Put curly braces ('{''}'on an extra line with the same indentation level as the previous lineExample:

      if (
value == 0)
      {
          
do_something();
      }

    * 
Put empty lines between code-blocksExample:

      
/* Do something */
      
do_something();

      
/* Do something else */
      
do_something_else();

    * 
Spaces around the mathematicalcomparison, and assignment operators ('+''-''*''/''=''!=''==''>', ...).
    * 
Spaces between C-identifiers like 'if''while''for', and 'return' and the opening brackets ('if (foo)''while (bar)', ...).
    * 
No spaces between function names and brackets and between brackets and function arguments (function(12instead of function ( 1)).
    * If 
the precedence of operations is ambiguous then put brackets around themAlso try to insert parentheses whenever necessary for readabilityegaround (foo RF3_SOME_DEFINE). There is usually no ambiguity and no macro resolutionbut this is an aesthetic detail.
    * If 
function takes no arguments then it should be declared with a void argument list. Exampleint foo(voidinstead of int foo().
    * Function 
declaration and definition should look the same.
    * 
Don't assume that functions declared without a return type return int. Specify the type explicitly. Example: int foo(void) instead of foo(void). 
Reply With Quote