不应省略声明对象或函数的类型
6.11.2 ID_missingType
C 语言在早期阶段曾允许省略声明对象或函数的类型,然而实践表明这种编程方式并不理想,已从 C99 标准中移出。
本规则针对 C 语言,C++ 语言没有这种特性,不受本规则限制。
示例:
extern a; // Non-compliant
const b; // Non-compliant
fun(void); // Non-compliant
typedef tp; // Non-compliant
例中 a、b、fun、tp 的类型为 int,可被省略声明,但可读性较差。
应改为:
extern int a; // Compliant
const int b; // Compliant
int fun(void); // Compliant
typedef int tp; // Compliant
相关
依据
ISO/IEC 9899:1999 6.7.2(2)
ISO/IEC 9899:2011 6.7.2(2)
参考
MISRA C 2004 8.2
MISRA C 2012 8.1
SEI CERT DCL31-C