メインコンテンツ

MISRA C:2023 Rule 3.2

Line-splicing shall not be used in // comments.

R2024a 以降

説明

ルール定義

Line-splicing shall not be used in // comments 1 .

根拠

ライン スプライシングは \ 文字の直後に改行文字が続くときに発生します。ライン スプライシングは複数行になるステートメントに使用されます。

ライン スプライシングを // コメントで使用する場合、次の行はコメントの一部になります。ほとんどの場合、\ は誤りであり、コードを意図せずにコメント アウトする可能性があります。

Polyspace 実装

Polyspace は、// で始まるコメントの最後の文字が \ でないかどうかをチェックします。

トラブルシューティング

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

すべて展開する

#include <stdbool.h>

extern _Bool b;

void func ( void )
{
    unsigned short x = 0;   // Non-compliant - Line-splicing \
    if ( b )
    {
        ++b;      
    }
}

ライン スプライシングにより、ステートメント if ( b ) は先行する // コメントの一部になっています。したがって、ステートメント b++ が常に実行され、if ブロックは冗長となります。

チェック情報

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