次のようなコードで PC-Lint 8.00x を実行しています。
typedef union
{
struct
{
unsigned int blue : 5;
unsigned int green : 6;
unsigned int red : 5;
};
unsigned short color_value;
} Color_Type;
Color_Type my_color;
unsigned char blue;
blue = (unsigned char)my_color.blue; /* Lint messages occur here */
PC-Lint は次のエラー メッセージを返します。
Error 40: Undeclared identifier 'blue'
Error 63: Expected an lvalue
コードは期待どおりにコンパイルおよび実行されます。 これは匿名の構造体が原因であると想定していますが、その想定は正しいですか? もしそうなら、この特定の状況でこれらのメッセージを抑制するにはどうすればよいですか? 私は現在、「options.lnt」ファイル内のメッセージを抑制しています。ローカルのコーディング慣行では、Lint メッセージを抑制するためにコードに直接コメントを入れることを禁止しているためです。