[前頁] [次頁] [目次]


(3)式

 フルセット C と同様の式が記述できます.細部について、とくに注意する点を取り上げて説明します.
    @ 使用できる演算子、結合規則、優先順位は、フルセット C と同じ仕様となっています.

    A シフト演算の右シフトでは、符号付きならば符号ビットが、符号なしならば 0 が第 15 ビットに入ります.

    B 単項演算の "+" は、ありません.

    C 条件式の持つ型については、式中に記述される 3 つの式の型の一致のチェックをしていないため、どのような式を置いても良く、その結果としては不定となっています.

    D 代入演算式の複合演算子は、=*, =+ のような 2 項演算子が後にくるものは使用できません.

    E sizeof 演算において、sizeof(関数名)としたときは、関数の返す型のサイズが値となります.

    F 代人演算式の右演算数に、構造体変数(メンバ指定なし)を置いたとき、代入されるのは、その変数のアドレスとなります.(構造体全体の代入はできません.)

    G 式における被演算数の型の一致のチェックは、厳密に行っていませんのでキャストによる明示的な型変換をしなくてもコンパイルエラーとはなりません.次の、例のような場合にキャストを使うとコーディングが少なく便利かとおもいます.

      (例)0x0006 番地を 0x50 に変更する.
      < 通常 >       < キャスト使用 >
      char *p;
      p = 0x006;    *((char *)0x006) = 0x50;
      *p = 0x50;
    今読み返すとこのG項の記述は意味不明です.

[前頁] [次頁] [目次]