拡張機能を使用することにより,効率の良いオブジェクトを生成することができます。しかし,拡張機能はRH850ファミリに則したもので,他に利用するためには修正が必要になる場合があります。
ここでは,他のCコンパイラからCC-RHへの移植と,CC-RHから他のCコンパイラへの移植の2つの場合について,その方法を説明します。
<他のCコンパイラからCC-RH>
- | #pragma注
他のCコンパイラが#pragmaをサポートしている場合は,Cソースを修正する必要があります。修正方法は,そのCコンパイラの仕様によって検討します。 |
- | 拡張仕様
他のCコンパイラがキーワードを追加するなどの仕様の拡張を行っている場合は,修正する必要があります。修正方法はそのCコンパイラの仕様によって検討します。 |
注 | ANSIでサポートされている前処理指令の1つで,#pragmaに続く文字列をコンパイラへの指令として認識させるものです。その指令がコンパイラによってサポートされていなければ,#pragma指令は無視され,コンパイルが続けられて正常に終了します。 |
<CC-RHから他のCコンパイラ>
- | CC-RHは,拡張機能としてキーワードの追加を行っているため,他のCコンパイラへ移植するためには,キーワードを削除するか,#ifdefで切り分けなければなりません。 |
#ifdef __CCRH__
#define interrupt /*interrupt関数を通常の関数にします*/
#endif
|
#ifdef __v850e3v5__
#define _Bool char /*_Bool型変数をchar型変数にします*/
#endif
|