メインコンテンツ

AUTOSAR C++14 Rule M3-3-2

If a function has internal linkage then all re-declarations shall include the static storage class specifier.

説明

ルール定義

If a function has internal linkage then all re-declarations shall include the static storage class specifier.

根拠

関数宣言に static ストレージ クラス指定子が含まれる場合、その関数は内部リンクをもちます。それ以降に行われるこの関数の再宣言は、static 指定子がなくても内部リンクをもちます。

ただし、static キーワードを明示的に指定しないと、宣言からは関数の内部リンクの有無がすぐには判明しなくなります。

トラブルシューティング

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

すべて展開する

static void func1 ();
static void func2 ();

void func1() {}  //Noncompliant
static void func2() {}

この例では、関数 func1static として宣言されていますが、static 指定子を使用せずに定義されています。

チェック情報

グループ: 基本概念
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入