Everything
4.2.7 Cソースの修正

拡張機能を使用することにより,効率の良いオブジェクトを生成することができます。しかし,拡張機能はRH850ファミリに則したもので,他に利用するためには修正が必要になる場合があります。

ここでは,他のCコンパイラからCC-RHへの移植と,CC-RHから他のCコンパイラへの移植の2つの場合について,その方法を説明します。

 

<他のCコンパイラからCC-RH>

-

#pragma
他のCコンパイラが#pragmaをサポートしている場合は,Cソースを修正する必要があります。修正方法は,そのCコンパイラの仕様によって検討します。

-

拡張仕様
他のCコンパイラがキーワードを追加するなどの仕様の拡張を行っている場合は,修正する必要があります。修正方法はそのCコンパイラの仕様によって検討します。

C90およびC99でサポートされている前処理指令の1つで,#pragmaに続く文字列をコンパイラへの指令として認識させるものです。その指令がコンパイラによってサポートされていなければ,#pragma指令は無視され,コンパイルが続けられて正常に終了します。

 

<CC-RHから他のCコンパイラ>

-

CC-RHは,拡張機能としてキーワードの追加を行っているため,他のCコンパイラへ移植するためには,キーワードを削除するか,#ifdefで切り分けなければなりません。

例 1.

キーワードを無効にする

#if !defined(__CCRH__)
#define inline          /* inline 関数を通常の関数にします */
#endif

 

例 2.

他の型に変更する

#if !defined(__CCRH__)
#define _Bool char      /* _Bool 型変数を char 型変数にします */
#endif