メインコンテンツ

MISRA C:2012 Rule 8.2

Function types shall be in prototype form with named parameters

説明

ルール定義

Function types shall be in prototype form with named parameters 1 .

根拠

このルールでは宣言内のすべてのパラメーターの名前とデータ型を指定しなければなりません。パラメーター名は関数インターフェイスに関して役立つ情報を提供します。宣言と定義の不一致はプログラミング エラーを示している可能性があります。たとえば、関数を定義するときにパラメーターを取り違えたとします。パラメーター名を要求することで、コード レビュー担当者はルールによってこの不一致を検出できます。

Polyspace 実装

関数の宣言または定義のパラメーターに名前やデータ型がない場合、ルール チェッカーは違反を示します。

レポート内の追加のメッセージ

  • Too many arguments to function_name.

  • Too few arguments to function_name.

  • Function types shall be in prototype form with named parameters.

トラブルシューティング

ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。

すべて展開する

extern int func(int);   /* Non compliant */
extern int func2(int n);   /* Compliant */

extern int func3();   /* Non compliant */
extern int func4(void);   /* Compliant */

この例では、パラメーターがない、またはパラメーターに名前がないため、func および func3 の宣言が準拠していません。

チェック情報

グループ: 宣言と定義
カテゴリ: 必要
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.