関数マクロを条件付きで定義する方法を知りたいです。たとえば、 という関数マクロがあるとしSETBIT
ます。私のライブラリを使用している誰かが、そのようなマクロ関数が既に定義されている別のヘッダー ファイルをインクルードしないように、独自のバージョンを定義したいと思います。この理由は、異なるコンパイラ間での移植性です。
したがって、次のように定数を使用してこれを実行できることを知っています。
#ifndef X
#define X 10
#endif
関数マクロで同様のことをしたい
#ifndef SETBIT
#define SETBIT(port,bit) ((port) |= (1 << (bit)))
#endif
しかし、私はこれがうまくいくとは思わない。