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

数组大小应被显式声明

6.4.6 ID_missingArraySize
目录 › next › previous

显式声明数组大小有利于提高可读性。

示例:

extern int a[];     // Non-compliant
extern int b[10];   // Compliant

由初始化列表定义数组大小是一种惯用方式,但列表较为复杂时不便于读出数组大小,如:

int a[] = {
    1, 2, 3, ....   // Many items, let it go?
};

审计工具不妨通过配置决定这种方式是否合规。

例外:

void foo(int a[], int n);   // Let it go

数组参数可不受本规则限制。

配置

allowNoArraySizeWithInitList: 是否放过带有初始化列表的数组

参考

MISRA C 2004 8.12 MISRA C 2012 8.11 MISRA C++ 2008 3-1-3 SEI CERT ARR02-C
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.