PC-Lint 怎么会忽略表达式或宏

How could PC-Lint ignore an expression or macro

我有一个 xc8 程序,我在其中预定义了 EEPROM:

__EEPROM_DATA (1, 2, 3, 4, 5, 6, 7, 8);

知道我喜欢 PC-Lint 在我的所有文件中忽略这样的表达式。

您应该能够找到您定义的 MACRO 允许进行某些条件编译的 LINT 程序。 例如,使用 SPLINT,您可以让它忽略 __EEPROM 调用 通过使用

 /*
  * definitions to ease splint checking in non xc8 compiler.
  */
#ifndef S_SPLINT_S
  __EEPROM_DATA (1, 2, 3, 4, 5, 6, 7, 8);
  __EEPROM_DATA (1, 2, 3, 4, 5, 6, 7, 8);
  __EEPROM_DATA (1, 2, 3, 4, 5, 6, 7, 8);
#endif

这样你就可以使用拆分的所有检查而不会收到关于 xc8/PIC 具体代码。

http://www.splint.org/manual/html/sec14.html

一种可能的方法是将以下内容添加到 .lnt 文件

// activate _to_semi keyword
+rw(_to_semi)

// assign __EEPROM_DATA to "_to_semi" expression that means everything from 
// "__EEPROM_DATA" until the next ";" will be ignored by PC-Lint             
-d__EEPROM_DATA=_to_semi