Renesas Synergy™

FAQ 104083 : I/O定義ファイル(iodefine.h)を使用しているソースファイルでコンパイルオプション pack 、 bit_order を指定しても問題ないでしょうか。

回答

周辺モジュールを定義する構造体に pack=1 オプション、 #pragma pack 1 、または、 bit_order=right オプション、 #pragma bit_order right が指定されると、周辺モジュールに正常にアクセスできなくなる可能性があります。

コンパイルオプション pack 、 bit_order をデフォルトオプションから変えて使用する場合には、I/O定義ファイル内に下記のような記述を追加して頂く必要があります。

<IO定義ファイル(iodefine.h):SHコンパイラ Ver.8以降>

#pragma pack 4         // <-- 追加
#pragma bit_order left // <-- 追加
...                    // 周辺モジュールの構造体定義
#pragma bit_order      // <-- 追加
#pragma unpack         // <-- 追加

<IO定義ファイル(iodefine.h):SHコンパイラ Ver.3以降>

#pragma pack 2
... // 周辺モジュールの構造体定義
#pragma unpack

適用製品

SuperHファミリ用C/C++コンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください