4.2.5 Cソースの修正

拡張機能を使用することにより,効率の良いオブジェクトを生成することができます。しかし,拡張機能は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で切り分けなければなりません。

例 1.

キーワードを無効にする

#ifdef __CCRH__
#define interrupt       /*interrupt関数を通常の関数にします*/
#endif

 

例 2.

他の型に変更する

#ifdef __v850e3v5__
#define _Bool char      /*_Bool型変数をchar型変数にします*/
#endif