假设我有一个结构:
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”)