1

関数マクロを条件付きで定義する方法を知りたいです。たとえば、 という関数マクロがあるとしSETBITます。私のライブラリを使用している誰かが、そのようなマクロ関数が既に定義されている別のヘッダー ファイルをインクルードしないように、独自のバージョンを定義したいと思います。この理由は、異なるコンパイラ間での移植性です。

したがって、次のように定数を使用してこれを実行できることを知っています。

#ifndef X
#define X 10
#endif

関数マクロで同様のことをしたい

#ifndef SETBIT
#define SETBIT(port,bit) ((port) |= (1 << (bit)))
#endif

しかし、私はこれがうまくいくとは思わない。

4

1 に答える 1

3

しかし、私はこれがうまくいくとは思わない。

それを信じるに至った理由は何ですか?それは機能します(タイプミスを修正すれば#ifndef SET_BIT、 と表示されるはずです)。

于 2013-11-11T00:33:28.047 に答える