我有下面的代碼,當我試圖編譯它,我得到一個錯誤:沒有成員編譯錯誤
error: ‘list_item_t’ has no member named ‘state’
任何創意如何讓這段代碼編譯沒有警告和錯誤回報?
#if defined (_DEBUG_)
#define ASSERT assert
#else /* _DEBUG_ */
#define ASSERT(exp) ((void)(exp))
#endif`
typedef struct list_item {
struct list_item *p_next;
struct list_item *p_prev;
#ifdef _DEBUG_
int state;
#endif
} list_item_t;
main(int argc, char *argv)
{
list_item_t p_list_item;
ASSERT(p_list_item.state == 0);
}
你說得對。這應該用_DEBUG_集進行編譯並且不帶它。我遇到的問題是_DEBUG_未設置。 – alnet