RENESAS TOOL NEWS 2008年07月01日 : 080701/tn1
| M32Rファミリ用C/C++コンパイラパッケージM3T-CC32R V.5.01 Release 00
ご使用上のお願い
--複数行にまたがる関数形式マクロを、
//または/*形式のコメントと共に記述している場合の注意事項-- |
M32Rファミリ用C/C++コンパイラパッケージ M3T-CC32R V.5.01 Release 00
の使用上の注意事項を連絡します。
- 複数行にまたがる関数形式マクロを、//または/*形式のコメントと共に記述
している場合の注意事項
1. 内容
関数形式マクロを複数行にわたり、//または/*形式のコメントと共に記述している場合、
コンパイル時に次のようなエラーメッセージを発生することがあります。
error: unterminated comment
2. 発生条件
次の(1)~(4)の全ての条件を満たす場合に発生することがあります。
(1) 展開対象となる関数形式マクロを複数行にわたって記述している。
(2) 関数形式マクロの最終行に、//または/*形式で始まるコメントがある。
(3) (2)の行のひとつ前の行に//形式で始まるコメントがある。
(4) 当該Cソースファイルのサイズが512バイトよりも大きい。
注:他のファイルをインクルードしている場合はインクルードファイルサイズを含む。
3. 発生例
-------------------------------------------------------------------------
#define SAMPLE_MACRO(a,b,c) (a + b + c)
/* . . . (途中省略) . . . */
int func(void)
{
return SAMPLE_MACRO( 1,
2, // No.2 <-- 発生条件(1)(3)
3); // No.3 <-- 発生条件(1)(2)
}
-------------------------------------------------------------------------
上記の例で省略している部分のプログラム内容によっては問題が発生しない
場合があります。
4. 回避策
//形式から始まるコメントのうち、発生条件(3)に該当するものを、
/* . . . */ 形式のコメントに変更するか、または削除してください。
return SAMPLE_MACRO( 1,
2, /* No.2 */ /* コメントの形式を変更 */
3); // No.3