私が構造体を持っているとしましょう:
struct location
{
int x;
int y;
};
次に、後でプログラムで使用する無効な場所を定義したいと思います。
#define INVALID_LOCATION (struct location){INT_MAX,INT_MAX}
ただし、プログラムでそれを使用すると、エラーになります。
struct location my_loc = { 2, 3 };
if (my_loc == INVALID_LOCATION)
{
return false;
}
これはコンパイルされません。そのように複合リテラルを使用することは合法ではありませんか? エラーが発生します:
バイナリ式のオペランドが無効です ('struct location' および 'struct location')