【问题标题】:Warning 634 and Warning 613 :MISRA警告 634 和警告 613:MISRA
【发布时间】:2014-01-23 11:57:46
【问题描述】:

我有两种情况我无法解决这些警告.. 这些是重复警告

1) Warning 634: Strong type mismatch (type 'SPI_FSH_HANDLE') in equality or conditional 


            #define SPI_NULL NULL
            SPI_FSH_HANDLE  flash;
            if (flash != SPI_NULL)

我尝试检查 NULL 条件,但警告仍然存在。

2)Warning 613: Possible use of null pointer 'flash' in left argument to operator '->'

部分代码:

if (strstr(flash->name, "M25P")!= SPI_NULL) 

我怎样才能避免这两个警告???

【问题讨论】:

    标签: c++ lint misra


    【解决方案1】:

    第二个应该可以通过在取消引用之前测试flash 来修复。

    第一个看起来像一个愚蠢的警告。如果你不能禁用它,也许可以通过测试if (flash) 来修复,如果 MISRA 没有阻止它的愚蠢规则,或者if (flash != SPI_FSH_HANDLE(SPI_NULL)) 否则。或者也许将SPI_NULL 设为SPI_FSH_HANDLEvoid* 类型的常量,而不是(可能)扩展为0 的邪恶宏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 2017-05-31
      相关资源
      最近更新 更多