Everything
A.8 Cソースの修正

拡張機能を使用することにより、効率の良いオブジェクトを生成することができます。

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

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

-

#pragma

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

-

拡張仕様

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

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

 

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

-

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

例 1.

キーワードを無効にする

 #ifndef __RX
 #define __evenaccess       /*__evenaccessを指定した変数を通常の変数にします*/
 #endif

例 2.

他のキーワードに変更する

 #ifdef __RX
 _Pragma("inline func")
 #else
 inline
 #endif
 void func() { }