1

組み込みの C99 互換プログラムに複数の構造体 (マイクロチップ コンパイラで使用される定義の型をモデルにしていますが、これはマイクロチップ アプリケーションではありません) があります。典型的な例を次に示します。

typedef struct
{
  union
  {
    struct
    {
      CommandDirection_t ReadWrite  : 1;
      RegisterAddress_t Register    : 7;
    };
    uint8_t Byte;
  };
} MemsAccelCommand_t;

CommandDirection_t と RigisterAddress_t は列挙型です。コードの後半で、構造体を宣言して初期化します。

MemsAccelCommand_t command = { .ReadWrite = CMD_Read };

これは警告やエラーなしでコンパイルされますが、ファイルをリントすると、「エラー 65: メンバー名が必要です」というエラーが表示されます。

lint エラーが発生しないようにコードを微調整するにはどうすればよいですか、またはこれに対する lint 警告を無効にするにはどうすればよいですか (エラー 65 を無効にする以外に)。

4

1 に答える 1