比方說,我有一個結構:的#define恆定結構
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;
}
這將不會編譯。以這種方式使用複合文字是不合法的?我得到錯誤:
Invalid operands to binary expression ('struct location' and 'struct location')
是不是你得到任何錯誤,如'錯誤:無效的預處理指令#DEFINE',或者它只是錯字? –
你爲什麼不告訴我們編譯器說了些什麼?你可以看到?如果我們知道編譯器說了什麼,肯定會更容易一些?我的猜測是編譯器告訴你到底什麼是錯的。你應該學會閱讀和解釋編譯器發出的錯誤消息。您沒有包含錯誤的事實表明您只是忽略錯誤消息的內容。 –