2

ここで質問するのが適切かどうかわかりませんが、とにかく質問します。

Lint に問題があります。現在、別のプロジェクトからいくつかのコードを移行しています。現在、新しいプロジェクトで使用されていない多くの構造体メンバーがあります。そしてもちろん、このリントは次のように不平を言っています。

情報 768: グローバル構造体メンバー 'foo' (89 行目、ファイル /path/header.h) が参照されていません

現時点ではこれらのメッセージを抑制したいと思います (ビルドが壊れるため) が、移行と並行してコードが実装されており、構造体メンバーが使用されないようにしたいため、グローバルには実行したくありません。そのため、グローバル構成ファイルを使用してこれらのメンバーのメッセージを抑制するオプションが残されています (つまり、-esym(768, foo))。

しかし、私はこの問題を抱えています:

typedef struct {
  u16 foo;
  u16 bar;
} t_foobar;

typedef struct {
  u16 foo;
  u16 bar;
  u16 temp;
} t_tempfoobar;

foob​​ar::foo と foobar::bar は現在使用されていないため、t_foobar 構造体全体に対して lint 例外を作成したいと考えていますが、-esym(foo) を使用すると、t_tempfoobar::foo に対しても例外を作成します。ほしくない。-esym(768, t_foobar*) を試しましたが、うまくいきませんでした。次のようなインライン例外も実行できません。

// lint -e768
typedef struct {
  u16 foo;
  u16 bar;
} t_foobar;
//lint -restore

それは動作しません。これが機能する唯一の方法は、Lint の構成ファイルで -e768 を実行することです。

これを達成する方法について何か提案はありますか? メンバーごとに例外を書く必要はありませんか? これには、同じ名前の他の構造体のメンバーも除外されるという問題もあります。

助けてくれてありがとう

4

1 に答える 1

1

Gimpel FAQ参照

メッセージ抑制の一般的な間違いのいくつかは次のとおりです。

  1. ソース コード内で lint コメントを使用していますが、効果がありません。その前にスペースを入れずに「lint」という単語を必ず含めてください。

    //lint -e620          - OK 
    //-e620          - won't work
    //  lint -e620    - won't work
    

質問のコード スニペットは、ここで問題のように思われる行の前に「スペース」を示しています。

于 2016-07-04T17:48:29.297 に答える