【发布时间】:2015-12-09 19:32:48
【问题描述】:
我的 CCS 6.1 ARM 编译器(用于 LM3Sxxxx Stellaris)抛出警告:
“MISRA 规则 10.1。整数类型的表达式的值不应隐式转换为不同的基础类型,如果表达式是 不是常数,是一个函数参数”
以下代码:
static uint32_t diagBaseAddress;
void diagCbGetBaseAddress(uint32_t * addr);
...
diagCbGetBaseAddress(&diagBaseAddress); // line where warning is issued
...
我的代码中没有发现问题。是误报还是我的错误?
【问题讨论】:
-
似乎是一个错误的警告。你确定这是整个代码吗?没有
const或volatile被扔进去吗? -
没有这样的修饰符。我在每个通过引用传递参数的函数调用中都得到了这些,但类型是正确的,就像在这个示例中一样。
-
如果您忘记了
&地址操作符,该消息将是正确的。确定在那儿? -
是的 & 在那里,如果省略,示例将根本无法编译。代码正常工作,但也许 TI CCS Misra 检查器有问题?我问是因为我无法想象它会为这么简单的代码发出错误的警告。