User Tools

Site Tools


guides:programstyle:codeblocks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
guides:programstyle:codeblocks [2020/07/24 14:30] – [Short Answer] wikiadminguides:programstyle:codeblocks [2024/07/25 15:01] (current) – external edit 127.0.0.1
Line 55: Line 55:
 When the body of a control structure, such as if, is a single statement, code blocks are not required, however a common convention is to require code a code block for any control statement. When the body of a control structure, such as if, is a single statement, code blocks are not required, however a common convention is to require code a code block for any control statement.
  
 +The main reason for this convention is that it allows programmers to modify code without introducing errors.
 +
 +Consider the following example:
 +<code c++>
 +for(i = 0; i < 10; i++) 
 +    Process(i);
 +</code>
 +
 +Assume that //Process// is designed to output a message, however it has a bug in it so it does not produce any output.  A first step at debugging may be to modify the loop as follows:
 +<code c++>
 +for(i = 0; i < 10; i++) 
 +    cout << "In the loop, i = " << i << endl;
 +    Process(i);
 +</code>
 +
 +Unfortunately, this has further broken the code.  The programmer probably assumes that both lines following the for loop will be executed as the body of the loop, but this is not the case.  Only the output line will be executed.  Had the programmer followed the convention of always placing the body of a control structure in a code block, this would not be the case.
 +
 +Failure to follow this convention leads to bugs so frequently that as of g++6, there is a flag to warn when this situation occurs (-Wmisleading-indentation).  
  
  
  
guides/programstyle/codeblocks.1595601016.txt.gz · Last modified: 2024/07/25 15:01 (external edit)