1

複素数の実部を返すマクロを作成したいと考えています (これは double、float、および long double 型で動作します)。GNU C 拡張機能__real__は、(残念ながら移植性はありませんが) 法案に適合しているようです。私は次のことを試みています:

#include <complex.h>
#if defined(__real__)
#define MYREAL(z) (__real__ z)
#endif

ただし、__real__拡張子が通常のマクロとして定義されていないように見えるため、 defined( __real__) テストは使用可能であるにもかかわらず失敗します。__real__これに適切なマクロを作成するために の存在をテストする方法を知っている人はいますか?

また、これを行う移植可能な方法を誰かが知っていれば、その解決策にも興味があります。

4

2 に答える 2