picox
0.1
|
コンパイラごとの依存機能を吸収します [詳解]
![]() |
マクロ定義 | |
#define | EOF (-1) |
#define | NULL ((void*)0) |
#define | X_ALWAYS_INLINE static inline |
コンパイラに対して、関数のインライン展開を強制するキーワードです。 [詳解] | |
#define | X_COMPILER_C99 (0) |
コンパイラがC99に対応しているかどうか | |
#define | X_DEPRECATED |
指定の定義が廃止予定や非推奨であることを表明するコンパイラディレクティブです [詳解] | |
#define | X_FUNC __func__ |
#define | X_GNUC_PREREQ(maj, min) 0 |
GCCのバージョンがn.m以上かどうかを返します | |
#define | X_HAS_STATEMENT_EXPRESSIONS (0) |
{}で囲まれた複合文と変数の宣言を()の式の中で使用できるかどうか [詳解] | |
#define | X_HAS_TYPEOF (0) |
コンパイラがtypeof拡張に対応しているかどうか [詳解] | |
#define | X_HAS_VARIADIC_MACROS (1) |
コンパイラが可変長引数マクロに対応しているかどうか [詳解] | |
#define | X_INLINE static inline |
コンパイラに対して、関数のインライン展開を指示するキーワードです。 [詳解] | |
#define | X_LIKELY(x) x |
条件分岐に使用するコンパイラ最適化ディレクティブです [詳解] | |
#define | X_MEMORY_BARRIER |
メモリ動作の順序性を制御するCPU命令です | |
#define | X_UNLIKELY(x) x |
条件分岐に使用するコンパイラ最適化ディレクティブです [詳解] | |
#define | X_UNREACHABE for (;;) |
以下のコードには決して到達しないことを表明するコンパイラディレクティブです | |
コンパイラごとの依存機能を吸収します
コンパイラごとに独自の拡張機能があったり、同じ機能でも構文が違ったり、C標準 (特にC99)で未サポートの機能があったりと、コンパイラ非依存のプログラムの記述 は相当大変です。このモジュールが提供する機能を利用することで、その負担を軽減 できます。
#define X_ALWAYS_INLINE static inline |
コンパイラに対して、関数のインライン展開を強制するキーワードです。
コンパイラがこの機能をサポートしていれば、最適化レベルや、関数の内容に関わら ず、必ずインライン化されるようにします。
#define X_DEPRECATED |
#define X_HAS_STATEMENT_EXPRESSIONS (0) |
{}で囲まれた複合文と変数の宣言を()の式の中で使用できるかどうか
これに対応していると以下のような無茶なことができます。
#define X_HAS_TYPEOF (0) |
コンパイラがtypeof拡張に対応しているかどうか
X_HAS_TYPEOF == 1の場合、X_TYPEOF()が使用可能です。
#define X_HAS_VARIADIC_MACROS (1) |
コンパイラが可変長引数マクロに対応しているかどうか
#define X_INLINE static inline |
コンパイラに対して、関数のインライン展開を指示するキーワードです。
実際にインライン展開されるかどうかは、コンパイラが判断します。
#define X_LIKELY | ( | x | ) | x |
条件分岐に使用するコンパイラ最適化ディレクティブです
#define X_UNLIKELY | ( | x | ) | x |
条件分岐に使用するコンパイラ最適化ディレクティブです