このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C:2012 Rule 20.11
A macro parameter immediately following a # operator shall not immediately be followed by a ## operator
説明
ルール定義
A macro parameter immediately following a # operator shall not immediately be followed by a ## operator 1 .
根拠
複数の #
、複数の ##
または #
と ##
プリプロセッサ演算子の組み合わせに関連付けられた評価順序は指定されていません。ルール 20.10 は #
および ##
の使用を推奨しません。#
演算子の結果は文字列リテラルとなります。この結果をその他の前処理トークンに貼り付けても有効なトークンになる可能性は極めて低くなります。
レポート内の追加のメッセージ
The ## preprocessor operator shall not follow a macro parameter following a # preprocessor operator.
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
グループ: プリプロセッサ命令 |
カテゴリ: 必要 |
AGC カテゴリ: 必要 |
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.