1

私は C++ の初心者で、いくつかのコードを解読したいと考えています。

    #define lowByte(w) ((uint8_t) ((w) & 0xff))
    #define highByte(w) ((uint8_t) ((w) >> 8))

変数宣言のように見えますが、この構文は初めて見ました。誰かがこの 2 行を分解して、その意味を教えてもらえますか?

4

1 に答える 1

2

これらはマクロ宣言です。

コード内にある場合は常にlowByte(0x1234)、マクロの右側の部分に置き換えられ、引数がその値に置き換えられます((uint8_t) ((0x1234) & 0xff))

このステップは、コンパイルの前にプリプロセッサによって実行されます。

于 2015-06-30T21:06:35.267 に答える