開発環境に依存する定義を行います。開発環境の特性をあらわす値などをマクロ定義して環境の差異を吸収します。
1byte, 2byte, 4byte, 8byteの整数型をマクロ定義します。最近になって8byte整数にVisualDSP++が対応したので楽になりました。
偶然VisualDSP++3.5コンパイラの型の大きさがm68K実装に使われているコンパイラのそれと同じだったのでconfig\m68k\tool_def.hの値をそのまま借用しています。
/* * コンパイラ依存のデータ型の定義 */ #define _int8_ char /* 8ビットの整数型 */ #define _int16_ short /* 16ビットの整数型 */ #define _int32_ int /* 32ビットの整数型 */ #define _int64_ long long /* 64ビットの整数型 */
doc\config.txtによると、inlineはインライン展開される関数の頭につけられ、Inlineはそのファイル内部でだけ展開される関数の頭につけられます。
VisualDSP++3.5コンパイラは予約語inlineに対応していますが、Inlineに対応する機能を持っていません。そのため、Inlineはマクロ定義を空にしています。
// ファイル内にしか適用しないインライン化 #define Inline static inline
doc\config.txtによると、asmはインラインアセンブラの予約語として扱われ、Asmは最適化を行わないインラインアセンブラの予約語として扱われます。VisualDSP++3.5コンパイラは予約語asmに対応します。また、Asmに対応するのはasm volatileです。
// 最適化を施さないasm化 #define Asm asm volatile