我有两个结构:
OnNewDocument
和带有签名的功能
typedef struct {
uint8 valid;
uint8 identifier[20];
uint8 parentIdentifier[20];
/* etc */
} CustomData;
#define max_data_size 10
typedef struct {
CustomData data[max_data_size];
uint32 numberOfUsedData;
/* etc. */
} MyContext;
我尝试如下调用我的函数:
uint8 parentInList(CustomData *data,
const CustomData* const list,
uint32 length);
我的静态分析表明MyContext ctx = /* some proper initialization */;
result = parentInList(&ctx.data[0], ctx.data, ctx.numberOfUsedData);
是MisraC的强制转换规则11.2:
“不得在指向
不完整的类型和其他任何类型”
但是我看不到这是不正确的。如果数组具有固定的大小,它不是不完整的类型吗?
这是我的静态分析器是否由于宏而给出了误报?还是我犯了一个错误,该如何解决?