MISRA C:2012 Rule 8.11
When an array with external linkage is declared, its size should be explicitly specified
説明
ルール定義
When an array with external linkage is declared, its size should be explicitly specified 1 .
根拠
不完全な型をもつ配列を宣言してその要素にアクセスするのは可能ですが、配列のサイズを明示的に記述する方が安全です。各宣言のサイズの情報を記述すると、コード レビュー担当者が複数の宣言の整合性をチェックできるようになります。サイズ情報があれば、静的解析ツールで複数のユニットを解析しなくても配列範囲解析を実行することができます。
Polyspace 実装
ルール チェッカーは、宣言で明示的に配列サイズが指定されていない場合に、extern 指定子を使用して宣言された配列にフラグを設定します。
レポート内の追加のメッセージ
Size of array array_name should be explicitly stated.When an array with external linkage is declared, its size should be explicitly specified.
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 宣言と定義 |
| カテゴリ: 推奨 |
| AGC カテゴリ: 推奨 |
バージョン履歴
R2014b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace® Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.