メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MISRA C:2023 Rule 8.1

Types shall be explicitly specified

R2024a 以降

説明

ルール定義

Types shall be explicitly specified 1 .

根拠

状況によっては、C90 規格から型を省略できます。これらの場合、int 型が暗黙的に指定されます。しかし、明示的な型の省略は混乱の原因になる可能性があります。たとえば、extern void foo (char c, const k); の宣言において k の型は const int ですが const char を想定していた可能性があります。

以下において、暗黙的な型を使用する場合があります。

  • オブジェクト宣言

  • パラメーター宣言

  • メンバー宣言

  • typedef 宣言

  • 関数の戻り値の型

Polyspace 実装

ルール チェッカーは、関数パラメーターまたは戻り値の型が明示的に指定されていない状況にフラグを設定します。

トラブルシューティング

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

すべて展開する

static foo(int a);  /* Non compliant */
static void bar(void);      /* Compliant */

この例では、foo の戻り値の型が暗黙的であるためルールに違反しています。

チェック情報

グループ: 宣言と定義
カテゴリ: 必要
AGC カテゴリ: 必要

バージョン履歴

R2024a で導入


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.