<コンパイル・オプション / 最適化オプション>
case=ifthenを指定した場合、switch文をif_then方式で展開します。if_then方式は、switch文の評価式の値とcaseラベルの値を比較し、一致すればcaseラベルの文へ飛ぶ処理をcaseラベルの回数繰り返す展開方式です。この方式は、switch文に含まれるcaseラベルの数に比例してオブジェクトコードのサイズが増大します。 |
case=tableを指定した場合、switch文をテーブル方式で展開します。テーブル方式は、caseラベルの飛び先を分岐テーブルに確保し、1 回の分岐テーブルの参照でswitch文の評価式と一致するcaseラベルの文へ飛ぶ展開方式です。この方式は、switch文に含まれるcaseラベルの数に比例して分岐テーブルのサイズが増えますが、実行速度は常に一定です。分岐テーブルは、switch文分岐テーブル領域のセクションに出力されます。 |