RENESAS TOOL NEWS 2005年02月01日 : RSO-NC308WA_2-050201D
M3T-NC308WAおよびM3T-NC30WA
ご使用上のお願い
-- typedefを使用して構造体を返す関数の使用について--
|
M16Cファミリ用Cコンパイラパッケージ (アセンブラ・統合化開発環境付き)
M3T-NC308WAおよびM3T-NC30WAの使用上の注意事項を連絡します。
- typedefを使用して構造体を返す関数を使用する場合の注意事項
- 該当製品
M32C/90, M32C/80シリーズ, M16C/80, およびM16C/70シリーズ用:
M3T-NC308WA V.5.00 Release 1 ~ V.5.20 Release 1
M16C/60, M16C/30, M16C/20, M16C/10, M16C/Tiny, およびR8C/Tinyシリーズ用:
M3T-NC30WA V.5.00 Release 1 ~ V.5.30 Release 1
- 内容
構造体を返す関数型または関数へのポインタをtypedef宣言して、この関数を使用すると誤ったコードを出力します。
- 2.1 発生条件
- 以下の条件を全て満たす場合に発生します。
| (1) | 構造体を返す関数型または関数へのポインタをtypdef宣言している。 |
| (2) | (1)で宣言された関数を使用している。 |
- 2.2 発生例
---------------------------------------------------------------
struct S{
int i;
};
typedef struct S (FUNC)(char);
typedef FUNC* FP;
FP obj1;
---------------------------------------------------------------
- 回避策
typedefを使用せずに宣言してください。
例
---------------------------------------------------------------
struct S{
int i;
};
struct S (*obj1)(char );
---------------------------------------------------------------
- 恒久対策
M3T-NC30WA V.5.30 Release 02以降では本問題は改修されています。