<コンパイル・オプション / 最適化オプション>
case=ifthenを指定した場合、switch文をif_then方式で展開します。if_then方式は、switch文の評価式の値とcaseラベルの値を比較し、一致すればcaseラベルの文へ飛ぶ処理をcaseラベルの回数繰り返す展開方式です。この方式は、switch文に含まれるcaseラベルの数に比例してオブジェクトコードのサイズが増大します。 |
case=tableを指定した場合、switch文をテーブル方式で展開します。テーブル方式は、caseラベルの飛び先を分岐テーブルに確保し、1 回の分岐テーブルの参照でswitch文の評価式と一致するcaseラベルの文へ飛ぶ展開方式です。この方式は、switch文に含まれるcaseラベルの数に比例して分岐テーブルのサイズが増えますが、実行速度は常に一定です。分岐テーブルは、switch文分岐テーブル領域のセクションに出力されます。 |
case=autoを指定した場合、出力形式を選択する他、switch文を表引きに変換することがあります。表引きへの変換の対象になるのは、switch文のうち、全case節で同一の変数に、定数を代入するものなどです。変換で作成する表の配置先は、リテラル領域のセクションとなります。【V3.07.00以降】 |