【MISRA C 2012】Rule 4.2 不应该使用三连符
- 1. 规则
- 1.1 原文
- 1.2 分类
- 2. 关键描述
- 3. 代码实例
1. 规则
1.1 原文
Rule 4.2 Trigraphs should not be used
Category Advisory
Analysis Decidable, Single Translation Unit
Applies to C90, C99
1.2 分类
规则4.2:不应该使用三连符
Advisory建议类规范。
2. 关键描述
三字母由两个问号组成的序列,后面跟着一个指定的第三个字符(例如?? ?)-表示~(波浪)字符,??)表示[]。它们可能会与两个问号的其他用法意外混淆。
注:所谓有向图:
<::> <% %> %:%: %:
,因为它们是令牌。在预处理之前,三字符在程序中出现的任何地方都会被替换。
3. 代码实例
例1,规范中例程:
For example the string
"(Date should be in the form ??-??-??)"
would not behave as expected, actually being interpreted by the compiler as
"(Date should be in the form ~~]"