メインコンテンツ

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

MISRA C:2023 Rule 3.1

The character sequences /* and // shall not be used within a comment.

R2024a 以降

説明

ルール定義

The character sequences /* and // shall not be used within a comment 1 .

根拠

これらの文字列は、以下の理由によりコード コメント内で許可されません。

  • コードの /* */ コメントに /* または // が含まれる場合、通常コードが誤ってコメント アウトされたことを意味します。

  • コードの // コメントに /* が含まれる場合、通常誤って /* */ がコメント解除されたことを意味します。

Polyspace 実装

ソース コード内のこのルールに注釈はつけられません。

注釈については、コードへの注釈付けと既知の結果または許容可能な結果の非表示を参照してください。

トラブルシューティング

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

すべて展開する

int x;
int y;
int z;

void non_compliant_comments ( void )
{
    x = y //  	/* Non-compliant
        + z
        //  */
        ;
    z++;	//	Compliant with exception: // permitted within a // comment
}

void compliant_comments ( void )
{
    x = y /*  	Compliant
      + z
	  */
        ;
    z++;	//	Compliant with exception: // is permitted within a // comment
}

この例では、関数 non_compliant_comments で文字 /*// コメントとみられる箇所で発生しており、ルールに違反しています。コメントの構造からすると、実行される演算は x = y + z; です。しかし、2 つの // がないと、完全に異なる演算 x=y; が実行されます。いずれの演算が意図されているのか不明確です。

コメント形式は意図が明確となるよう使用してください。たとえば、関数 compliant_comments では、演算 x=y; が意図されていることが明確です。

チェック情報

グループ: コメント
カテゴリ: 必要
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.