☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

声明和定义内部链接的对象和函数时均应使用 static 关键字

6.3.10 ID_missingStatic
目录 › next › previous

声明和定义内部链接的对象和函数时均应使用 static 关键字,不可使用 extern 关键字,否则极易引起误解。

示例:

extern int a;   // Non-compliant
....
static int a;   // ‘a’ is a static object
static int b;   // ‘b’ is a static object
....
extern int b;   // Non-compliant

例中 a、b 是内部链接的静态对象,在定义的前后不可再用 extern 声明,否则极易与全域对象混淆。

又如:

int foo(int);          // Bad, missing ‘static’

static int foo(int) {
    ....
}

static int bar(int);

int bar(int) {         // Bad, missing ‘static’
    ....
}

在声明和定义内部链接的函数时,均应使用 static 关键字,否则也易引起误解。

参考

MISRA C 2004 8.11 MISRA C 2012 8.8 MISRA C++ 2008 3-3-2
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.