Skip to content

Commit ba11d88

Browse files
authored
精炼词句
1 parent 564aba5 commit ba11d88

File tree

2 files changed

+26
-32
lines changed

2 files changed

+26
-32
lines changed

c-cpp-rules.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -377,15 +377,15 @@
377377
"ID_for_floatCounter": {
378378
"checkPoint": "for 循环变量不应为浮点型",
379379
"level": "warning",
380-
"comment": "用于控制循环次数的变量称为循环变量,这种变量不应采用浮点类型,否则循环的次数难以控制。",
380+
"comment": "用于控制循环次数的变量称为“循环变量”,这种变量不应采用浮点类型,否则循环的次数难以控制。",
381381
"tag": "control",
382382
"related": "ID_illFloatComparison",
383383
"reference": "MISRA C 2004 13.4,MISRA C 2012 14.1,MISRA C++ 2008 6-5-1"
384384
},
385385
"ID_for_counterChangedInBody": {
386386
"checkPoint": "for 循环变量不应在循环体内被改变",
387387
"level": "warning",
388-
"comment": "用于控制循环次数的变量称为循环变量,这种变量只应在 for 迭代声明的第 3 个表达式中被改变,否则陡增逻辑复杂度,且可读性较差。",
388+
"comment": "用于控制循环次数的变量称为“循环变量”,这种变量只应在 for 语句的第 3 个表达式中被改变,否则陡增逻辑复杂度,且可读性较差。",
389389
"tag": "control",
390390
"reference": "C++ Core Guidelines ES.86,MISRA C 2004 13.6,MISRA C++ 2008 6-5-3"
391391
},
@@ -1141,7 +1141,7 @@
11411141
"level": "suggestion",
11421142
"comment": "逗号表达式将多个语句合成一个表达式,易形成笔误并造成阅读困难。",
11431143
"config": {
1144-
"allowCommaExpressionInForIteration": "为 true 时放过 for 迭代声明中的逗号表达式"
1144+
"allowCommaExpressionInForIteration": "为 true 时放过 for 语句中的逗号表达式"
11451145
},
11461146
"tag": "expression",
11471147
"reference": "MISRA C 2004 12.10,MISRA C 2012 12.3,MISRA C++ 2008 5-18-1"
@@ -1897,7 +1897,7 @@
18971897
"ID_complexInlineFunction": {
18981898
"checkPoint": "不应定义过于复杂的内联函数",
18991899
"level": "suggestion",
1900-
"comment": "当有如下情况时,不适合将函数声明为内联函数:\n1. 行数超过指定限制\n2. 存在循环或异常处理语句\n3. 存在switch分枝语句\n4. 函数为递归函数\n实际上如果出现以上情况,编译器也不会将其实现为内联函数",
1900+
"comment": "不应定义过于复杂的内联函数",
19011901
"config": {
19021902
"maxInlineFunctionLineCount": "内联函数行数上限,超过则报出"
19031903
},
@@ -2303,7 +2303,7 @@
23032303
"ID_for_simplification": {
23042304
"checkPoint": "for 语句没有明显的循环变量时应改用 while 句语",
23052305
"level": "suggestion",
2306-
"comment": "如果for迭代声明中的第 1 个和第 3 个表达式为空,应改为 while 循环,使代码更简洁。",
2306+
"comment": "如果 for 语句的第 1 个和第 3 个表达式为空,应改为 while 循环,使代码更简洁。",
23072307
"tag": "control",
23082308
"reference": "C++ Core Guidelines ES.73"
23092309
},

c-cpp-rules.md

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2948,16 +2948,16 @@ ID_macro_typeid     :bulb: precompile suggestion
29482948
示例:
29492949
```
29502950
namespace U {
2951-
#define MyType int // Non-compliant
2951+
#define Type int // Non-compliant
29522952
}
29532953
29542954
namespace V {
2955-
#define MyType long // Non-compliant
2955+
#define Type long // Non-compliant
29562956
}
29572957
2958-
void foo(MyType); // Unreliable
2958+
void foo(Type); // Unreliable
29592959
```
2960-
例中 MyType 的最终定义是 long,第二个宏定义会覆盖第一个宏定义,这显然是不可靠的。
2960+
例中 Type 的最终定义是 long,第二个宏定义会覆盖第一个宏定义,这显然是不可靠的。
29612961
<br/>
29622962
<br/>
29632963

@@ -3082,7 +3082,7 @@ const char* foo() {
30823082
return M("x", "y"); // Non-compliant
30833083
}
30843084
```
3085-
在早期标准中(如 ISO 9899:1990)这种情况是未定义的,而后续标准对其进行了约束,但 MSVC 等编译器不把这种问题视作编译错误,需要特别注意。
3085+
在早期标准(ISO 9899:1990)对这种情况没有明确定义,后续标准对其进行了约束,但 MSVC 等编译器至今仍不把这种问题视作编译错误,需要特别注意。
30863086
<br/>
30873087
<br/>
30883088

@@ -9037,13 +9037,12 @@ int foo() throw(Exception); // Non-compliant
90379037
应改为:
90389038
```
90399039
int foo() noexcept(false); // Compliant
9040-
int bar() noexcept; // Compliant
90419040
```
90429041
例外:
90439042
```
90449043
int bar() throw(); // Let it go?
90459044
```
9046-
空的 throw 异常规格说明与 noexcept 等价,是一种惯用写法,可根据配置项放宽要求,本规则不建议使用 throw 关键字
9045+
空的 throw 异常规格说明与 noexcept 等价,是一种惯用写法,审计工具不妨通过配置决定是否放过这种方式
90479046
<br/>
90489047
<br/>
90499048

@@ -10580,7 +10579,7 @@ ID_complexInlineFunction&emsp;&emsp;&emsp;&emsp;&nbsp;:bulb: function suggestion
1058010579

1058110580
<hr/>
1058210581

10583-
不适合将函数声明为内联的情况
10582+
不适合将函数声明为内联函数的情况
1058410583
- 行数超过指定限制
1058510584
- 存在循环或异常处理语句
1058610585
- 存在 switch 分枝语句
@@ -11325,7 +11324,7 @@ ID_for_simplification&emsp;&emsp;&emsp;&emsp;&nbsp;:bulb: control suggestion
1132511324

1132611325
<hr/>
1132711326

11328-
如果 for 迭代声明中的第 1 个和第 3 个表达式为空,应改为 while 循环,使代码更简洁。
11327+
如果 for 语句的第 1 个和第 3 个表达式为空,应改为 while 循环,使代码更简洁。
1132911328

1133011329
示例:
1133111330
```
@@ -11336,7 +11335,7 @@ for (;condition;) // Non-compliant
1133611335
while (condition) // Compliant
1133711336
```
1133811337
例外:
11339-
for (;;) 被当作一种无限循环的惯用方法可被排除
11338+
for (;;) 被当作一种无限循环的惯用方法可不受本规则约束
1134011339
<br/>
1134111340
<br/>
1134211341

@@ -11394,7 +11393,7 @@ ID_for_floatCounter&emsp;&emsp;&emsp;&emsp;&nbsp;:fire: control warning
1139411393

1139511394
<hr/>
1139611395

11397-
用于控制循环次数的变量称为循环变量,这种变量不应采用浮点类型,否则循环的次数难以控制。
11396+
用于控制循环次数的变量称为“循环变量”,这种变量不应采用浮点类型,否则循环的次数难以控制。
1139811397

1139911398
由于浮点型变量的不精确性使浮点型变量不适用于控制循环次数,参见 ID\_illFloatComparison。
1140011399

@@ -11416,6 +11415,7 @@ for (size_t n = 0; n < 1000; n++) { // Compliant
1141611415
....
1141711416
}
1141811417
```
11418+
这样循环的次数便与预期相符。
1141911419
<br/>
1142011420
<br/>
1142111421

@@ -11436,7 +11436,7 @@ ID_for_counterChangedInBody&emsp;&emsp;&emsp;&emsp;&nbsp;:fire: control warning
1143611436

1143711437
<hr/>
1143811438

11439-
用于控制循环次数的变量称为循环变量,这种变量只应在 for 迭代声明的第 3 个表达式中被改变,否则陡增逻辑复杂度,且可读性较差。
11439+
用于控制循环次数的变量称为“循环变量”,这种变量只应在 for 语句的第 3 个表达式中被改变,否则陡增逻辑复杂度,且可读性较差。
1144011440

1144111441
示例:
1144211442
```
@@ -11492,21 +11492,15 @@ for 循环体应为复合语句,即使只包含一条语句。
1149211492

1149311493
示例:
1149411494
```
11495-
int foo() {
11496-
int a = 0;
11497-
for (int i = 0; i < 10; i++) // Non-compliant
11498-
a += i;
11499-
return a;
11500-
}
11495+
int a = 0;
11496+
for (int i = 0; i < 10; i++) // Non-compliant
11497+
a += i;
1150111498
```
1150211499
应改为:
1150311500
```
11504-
int foo() {
11505-
int a = 0;
11506-
for (int i = 0; i < 10; i++) { // Compliant
11507-
a += i;
11508-
}
11509-
return a;
11501+
int a = 0;
11502+
for (int i = 0; i < 10; i++) { // Compliant
11503+
a += i;
1151011504
}
1151111505
```
1151211506
<br/>
@@ -11735,7 +11729,7 @@ ID_do_suspiciousContinue&emsp;&emsp;&emsp;&emsp;&nbsp;:fire: control warning
1173511729

1173611730
continue 语句和 break 语句在语义上是不同的,但在 do\-while(false) 中它们的功效是一样的。
1173711731

11738-
在 do\-while(false) 的循环体中如果既有 break 语句又有 continue 语句,那么 continue 语句被误用的可能性较大。
11732+
在 do\-while(false) 的循环体中如果既有 break 语句又有 continue 语句,continue 语句被误用的可能性较大。
1173911733

1174011734
示例:
1174111735
```
@@ -15307,12 +15301,12 @@ for (a = 0, b = 0; a < 100; a++, b++) { // let it go?
1530715301
....
1530815302
}
1530915303
```
15310-
在 for 迭代声明中的第 1 个和第 3 个表达式中使用逗号表达式为惯用方式,但这种方式并不值得提倡,审计工具不妨通过配置决定是否放过这种方式。
15304+
在 for 语句的第 1 个和第 3 个表达式中使用逗号表达式为惯用方式,但这种方式并不值得提倡,审计工具不妨通过配置决定是否放过这种方式。
1531115305
<br/>
1531215306
<br/>
1531315307

1531415308
#### 配置
15315-
allowCommaExpressionInForIteration:为 true 时放过 for 迭代声明中的逗号表达式
15309+
allowCommaExpressionInForIteration:为 true 时放过 for 语句中的逗号表达式
1531615310
<br/>
1531715311

1531815312
#### 参考

0 commit comments

Comments
 (0)