Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 复合表达式(目标的基本类型)堆栈溢出的不允许强制转换_C_Pointers_Misra - Fatal编程技术网

C 复合表达式(目标的基本类型)堆栈溢出的不允许强制转换

C 复合表达式(目标的基本类型)堆栈溢出的不允许强制转换,c,pointers,misra,C,Pointers,Misra,伪码 void a(Atype *b) { uint32 i = 0; uint32 b; b = (uint32)(&b[i]); } 对于代码-b=(uint32)(&b[i])中的行; 我收到的警告是 复合表达式的不允许浇铸(更广泛的基本要求) 目的地类型)[MISRA 2012规则10.8,必填] 我无法理解这个警告。有什么帮助吗?您正在隐藏作为参数传递的变量b,因此Atype不相关 然后您试图访问b[i],其中b是uint32。这没有意义:b不是指针或数组类型 您

伪码

void a(Atype *b)
{
  uint32 i = 0;
  uint32 b;
  b = (uint32)(&b[i]);
}
对于代码-b=(uint32)(&b[i])中的行; 我收到的警告是
复合表达式的不允许浇铸(更广泛的基本要求) 目的地类型)[MISRA 2012规则10.8,必填]


我无法理解这个警告。有什么帮助吗?

您正在隐藏作为参数传递的变量
b
,因此
Atype
不相关

然后您试图访问
b[i]
,其中
b
uint32
。这没有意义:
b
不是指针或数组类型


您的程序行为未定义。我对此感到惊讶。

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小的、完整的、可验证的示例?不要将指针投射到
(u)intptr\u t
“伪代码”不会生成警告。嗯,两者的作用域相同,因此它甚至不应该编译。