我需要能够在C代码的特定行上抑制lint警告,我想用内联指令做到这一点。这是针对我要移植到64位的大量遗留代码,我宁愿把指令放在代码中,而不是放在运行lint的Makefile中,因为后者相当晦涩。
问题是Solaris lint文档只指定了如何对少数警告类型(据我所知)这样做。
在过去,使用以下形式,Solaris文档建议这仍然是允许的,但它似乎不起作用。使问题复杂化的是,Solaris lint不给出错误编号,而是使用像E_CAST_INT_TO_SMALL_INT这样的标识符。
这是旧的方法(代码中已经有很多这样的方法):
/*line -e511*/
在此链接的Lint指令部分中描述
有两种内联的方法来抑制单行代码的lint警告——旧的方法和推荐的新方法。
旧的方法是使用LINTED注释:/*LINTED*/
NOTE(LINTED (msg))
新方法还需要包含note.h.