メインコンテンツ

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

MISRA C++:2008 Rule 6-2-3

Before preprocessing, a null statement shall only occur on a line by itself; it may be followed by a comment, provided that the first character following the null statement is a white-space character

説明

ルール定義

前処理の前では、null ステートメントはそれ自体のみが 1 行の中に現れなければなりません。ただし、null ステートメントに続く最初の文字が空白文字の場合は、その後にコメントを記述できます。 1

根拠

null ステートメント:

;
他のコードと同じ行で使用されている場合、プログラミング エラーを示す可能性があります。null ステートメントを入力する場合は、それのみを 1 行に配置してください。

null ステートメントの後にコメントを入力できますが、レビュー担当者がわかりやすいように、null ステートメントとコメントの間に空白文字を 1 つ入れてください。

Polyspace 実装

ルール チェッカーは、ある行のコメントを除いた最初の文字がセミコロンである場合、その行を null ステートメントと見なします。ルール チェッカーは以下の場合に違反を報告します。

  • コメントが null ステートメントの前に現れる。

    次に例を示します。

    /* wait for pin */ ; 

  • セミコロンの直後にコメントが現れる (セミコロンの後に空白がない)。

    次に例を示します。

    ;// wait for pin

ルール チェッカーは、null ステートメントに続いて同じ行に 2 番目のステートメントが現れる場合も違反を報告します。

次に例を示します。

; count++;

トラブルシューティング

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

すべて展開する

この例では、null ステートメントの後にコメントが入力されている 3 種類のパターンが示されています。

  • 1 番目のオプションは準拠しています。null ステートメントの後にコメントが配置されており、null ステートメントのみで 1 行になっており、セミコロンとコメントの間に空白があります。

  • 2 番目のオプションは準拠していません。コメントが null ステートメントの前に配置されています。

  • 3 番目のオプションは準拠していません。セミコロンとコメントが空白で区切られていません。

#include <iostream>

void main()
{
	std::cout << "Hello World" << std::endl;
	 ; // comment here - Compliant     
	 /* comment here */ ; // Noncompliant
	 ;//comment here - Noncompliant
	
}

チェック情報

グループ: Statements
カテゴリ: 必要

バージョン履歴

R2013b で導入


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.