gpt4 book ai didi

c++ - MISRA 发出的文字零而不是空指针常量警告

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:05 27 4
gpt4 key购买 nike

我有这个功能:

void InitS(unsigned int &numS){
// this function returns a container for unsigned int
// but it has a cast for int
numS = props.numOfS();
if (numS > 0) {
..
}
}

它编译但给我这个 MISRA 警告:

MISRA-C++ Rule 4-10-2 (required): Literal zero (0) shall not be used as the null-pointer-constant.

现在,如果 numShots 是一个“真正的”指针,我可以将 0 更改为 NULL。但 numShots 是引用,我应该将其视为 int

MISRA 想要什么,为什么?

最佳答案

由于 nums 是一个 unsigned int,您需要与 0U 进行比较,其中附加的“U”表示文字是一个unsigned int,与没有signed int。

这一直困扰着我的团队。我们不明白为什么需要将零标记为无符号。

此外,您不是在处理指针。函数签名 unsigned int& 表示变量将通过引用传递,而不是通过指针传递。您将修改原始对象,而不是拷贝。

关于c++ - MISRA 发出的文字零而不是空指针常量警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com