-
Notifications
You must be signed in to change notification settings - Fork 1
Statements
Igor Smirnov edited this page Sep 30, 2015
·
2 revisions
The statements generally inherit rules that are applied for syntax. One important exception is that function calls are written without space between function name and opening brace for parameters. For clarification purposes refer to
Examples show recommended style and point out what we'd like to avoid.
/* Prefer */
if ( a == b)
{
c++;
}
/* Avoid */
if( a == b) //No space after 'if'
{
c++;
}
/* Avoid */
if (a == b) //No space after brace
{
c++;
}
/* Prefer */
if ( condition_one)
{
...
} else if ( condition_two)
{
...
} else
{
...
}
/* Avoid */
if ( condition_one)
{
...
}
else if ( condition_two) // redundant line
{
...
} else { // BUT needed newline for this curly brace
...
}
/* Prefer */
for ( i = 0; i < MAX; i++)
{
while ( condition)
{
}
}
/* Prefer */
for ( i = getFirstIndex();
!isTraversalComplete();
i = updateIndexByTraversalStep())
{
do
{
...
} while ( condition);
}
/* Avoid */
for ( i = 0; i < MAX; i++, a--) // Nested loops - put curly braces to ephasize
while ( condition) a++; // Need newline here
/* Avoid */
for ( i = getFirstIndex(); !isTraversalComplete(); i = updateIndexByTraversalStep()) // too long
{
do
{
...
}
while ( condition); // redundant line
}
/* Prefer */
a = ( b > c)? d : e;
/* Prefer */
next_element = ( current_element == null)
? getFirstElement()
: current_element->getNext();
/* Avoid */
a = ( b > c)?
d : e; // Redundant line
/* Avoid */
next_element = (current_element == null)?getFirstElement():current_element->getNext();
// Too long and no spaces
No space between function name and parameter list. Space after opening brace. If parameter list is empty put braces together.
/* Prefer */
list_NewElem( curr_elem, data->getTemporaryDataP());
/* Avoid */
list_NewElem (curr_elem, data->getTemporaryDataP( ));
Indent ending of long parameter list to align with first parameter. Alternatively you can place each parameter on separate line since it encourages commenting them.
/* Prefer */
initializeField( getFirstFieldDefault(), getSecondFieldDefault(),
getThirdFieldDefault(), lastParameter());
/* Prefer */
initializeField( getFirstFieldDefault(),
getSecondFieldDefault(),
getThirdFieldDefault(),
lastParameter());
/* Avoid */
initializeField( getFirstFieldDefault(), getSecondFieldDefault(),
getThirdFieldDefault(), lastParameter());
/* Avoid */
initializeField( getFirstFieldDefault(),
getSecondFieldDefault(), getThirdFieldDefault(), lastParameter());
/* Avoid */
initializeField( getFirstFieldDefault(), getSecondFieldDefault(),
getThirdFieldDefault(), lastParameter());