由于assert(...); 语句的作用是为了放置一个验证条件,其功能与一般的功能语句不同,如果不同功能代码都用同样的缩进,这样就会用代码阅读起来不清晰,例如:
....
assert(k>0);
int col_num = this->numcols();
assert(col_num >0);
int row_num = this->numrows();
int i =0;
int j = ++i;
int arr_index = r * col_num + c ;
assert(arr_index < col_num * row_num );
...
和以下的代码相比:
assert(k>0);
int col_num = this->numcols();
assert(col_num >0);
int row_num = this->numrows();
int i =0;
int j = ++i;
int arr_index = r * col_num + c ;
assert(arr_index < col_num * row_num );
后者看似更为清晰,不同功能的代码都分成了不同的缩进,易于将代码阅读者的注意国集中在功能性的代码里。