メインコンテンツ

MISRA C++:2023 Rule 6.0.2

When an array with external linkage is declared, its size should be explicitly specified

R2024b 以降

説明

ルール定義

When an array with external linkage is declared, its size should be explicitly specified. 1

根拠

未完成の配列型を宣言して、後でその型を完成させることは可能ですが、最初の宣言で配列サイズを指定しておくと、後続の配列アクセスにおいてエラーが発生しにくくなります。

Polyspace 実装

Polyspace® は、サイズを指定せずに外部配列を宣言した場合、このルールの違反を報告します。

トラブルシューティング

ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

int array[10];  
extern int array2[]; //Noncompliant
int array3[]= {0,1,2};
extern int array4[10];

array2 の宣言で配列サイズが指定されていません。

チェック情報

グループ: Basic Concepts
カテゴリ: 推奨

バージョン履歴

R2024b で導入


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.