本文へジャンプ

 MIFES マクロ
 マクロコマンド書式 制御構造 式について 演算 変数 定数 システム変数 システム関数 機能番号一覧 仮想キー番号一覧
 サンプル1 サンプル2
   

演算子

 MIFEのマクロ記述では以下の演算子がサポートされています。

単項演算子

  ++ プリインクリメント/ポストインクリメント
  ユーザ単純変数にのみ可能(配列変数やシステム変数には不可)

     例. @str3[@5++] = @str4[@6++]
       -- プリデクリメント/ポストデクリメント
       ユーザ単純変数にのみ可能(配列変数やシステム変数には不可)

     例. while --@5 > 0
       & アドレス演算子
       配列変数にのみ可能。通常は関数の引数に使用

     例. sprintf(@str4,"%s = %d",&@@str3[@2-16],@5-32)
       - ハイフン:2の補数(負の数)

     例. if @5 == -2
       ~ チルド:1の補数(全ビットの反転)

     例. @dstat &= ~DTAT_UNDERLINE (下線の消去)
!       論理否定

     例. if !jump(0,32)

 注意)すべての単項演算子の優先順位は15です。すべての単項演算子は2項演算子よりも優先順位は高くなります。

2項演算子(優先順位)

    = 代入(2)
    &= ビット論理積と代入(2)
    |= ビット論理和と代入(2)
    ^= ビット排他的論理和と代入(2)
    <<= ビット左シフトと代入(2)
    >>= ビット右シフトと代入(2)
    %= 剰余と代入(2)
    *= 乗算と代入(2)
    /= 除算と代入(2)
    += 加算と代入(2)
    -= 減算と代入(2)
    && 論理積(3)
    || 論理和(3)
    >= 関係演算:以上(4)
    <= 関係演算:以下(4)
    == 関係演算:等しい(4)
!    = 関係演算:等しくない(4)
    > 関係演算:より大きい(4)
    < 関係演算:より小さい(4)
    + 加算(5)
    - 減算(5)
    * 乗算(7)
    / 除算(7)
    % 剰余(9)
    << ビット左シフト(10)
    >> ビット右シフト(10)
    & ビット論理積(11)
    | ビット論理和(11)
    ^ ビット排他的論理和(11)

 注意)同じ2項演算子(または優先順位の同じ2項演算子)では、原則として先に現われた方(左側の方)の演算子が先に実行されます。ただし、代入演算子の場合だけはこの逆で、後に現われた方(右側の方)の演算子が先に実行されます。注意してください。

   例1. @9=@1-@2-@3-@4 ----> @9=((@1-@2)-@3)-@4 と同じ

   例2. @6=@7=@8=0 ---> @6=(@7=(@8=0)) と同じ

 なお、演算子の優先順位はC言語と全く同じではありません。ビット演算子の優先順位が高いことに注意してください。1つの式の中に複数の演算子を記述する場合には、できるだけ優先させたい演算部分を ( と ) で囲って記述してください。


リンク


 



お知らせ
  • お知らせが入ります。
  • お知らせが入ります。
  • お知らせが入ります。