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

声明中不应包含过多的指针嵌套

6.10.2 ID_tooManyPtrLevel
目录 › next › previous

指针嵌套层级过多意味着指针的解引用逻辑过于复杂,相关代码将难以理解,指针嵌套不宜超过 2 级。

示例:

T *** x;   // Bad
T * volatile * * const * y;   // Terrible

例中 T 为任意类型,如果发现这种指针,意味着需要改进对相关数据的访问方式。

出于灵活性的考虑,非连续的指针嵌套可不受本规则约束,如:

int** (*pa)[100];   // Let it go
int** (*pf)(int);   // Let it go

例中 pa 是指向数组的指针,数组元素为 2 级指针,pf 是函数指针,函数返回 2 级指针,这种情况是可接受的。

配置

maxPtrLevel: 指针嵌套的最大层数,超过则报出

相关

ID_complexDeclaration

参考

MISRA C 2004 17.5 MISRA C 2012 18.5
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.