以下代码给了我警告:
初始化:静态符号“myStruct”的地址用于符号“otherStruct”
警告在 SomeOtherStruct otherStruct 初始化的右括号/分号处给出。
typedef struct
{
U32BIT memberA;
U32BIT memberB;
} MyStruct;
typedef struct
{
U32BIT *memberAPtr;
U32BIT *memberBPtr;
} SomeOtherStruct;
static MyStruct myStruct;
int main(void)
{
SomeOtherStruct otherStruct =
{
&myStruct.memberA,
&myStruct.memberB
}; // <<-- warning given here.
// doing something with otherStruct
}
如果我成功了,SomeOtherStruct otherStruct
static
那么问题就会消失。但我不想这样做,因为我不想SomeOtherStruct otherStruct
总是在内存中,因为它被传递给另一个函数/文件来存储它。
(SomeOtherStruct 来自一个要求用指针列表对其进行初始化的库。)
为什么我的编译器给我这个警告,我能做些什么或者我做错了什么?因为我没有看到这段代码有任何问题(QAC/MISRA-C 也没有,因为通常 QAC/MISRA-C 会抱怨)。
另外,可能一文不值,我的编译器是FUJITSU Softune Fs907s