lint中强类型检查的问题(警告632)

时间:2011-08-16 15:31:41

标签: c lint strong-typing

我正在努力改进一些现有的C代码,以便将其移植到新的编译器(嵌入式软件,我们正在切换硬件)。所以我试图用lint擦除当前代码,并且我被lint决定的一个强类型违规的赋值所困扰。

我得到的错误:

--- Module:   GenericFileName.c 
GenericFileName.c  ...  Warning 632: Assignment to strong type
(SubStructureType_T) in context: assignment

它引用的代码行(为便于阅读而更改了名称):

void foo(void)
{
    extern const StructureType_T parent;    
    const SubStructureType_T *localChild;

    localChild = parent.child;   //<-- lint complains about this assignment
    ...
}

StructureType_T的相关部分:

typedef struct
{   
    const struct SubStructureType_T *child;
    ...
}StructureType_T;

最后,lint选项启用强类型检查:

-strong(AcXJcb)

非常感谢任何见解。我一直在寻找帮助,但没有找到太多帮助。我猜lint是一个非常古老的工具。谢谢你的阅读!

1 个答案:

答案 0 :(得分:1)

const SubStructureType_Tfoo还是const struct SubStructureType_Ttypedef?请注意,关键字“struct”仅出现在第二个定义中。

他们是一样的吗?