我在C中有一個函數,它正在崩潰我的代碼,我很難弄清楚發生了什麼。我有一個看起來像這樣的函數:使用函數指針
#define cond int
void Enqueue(cond (*cond_func)());
cond read() {
return IsEmpty(some_global); // Returns a 1 or a 0 as an int
}
Enqueue(&read);
但是,當運行上面的代碼時,只要Enqueue被調用就會發生段錯誤。它甚至不執行任何內部函數。我運行了gdb,它只是在Enqueue被調用時顯示它即將死亡 - 沒有任何語句被處理。任何想法是怎麼回事?任何幫助,將不勝感激。
'#define cond int' < - 這是幹什麼用的?他們發明了'typedef'是有原因的。 – us2012
命名你的函數'read'會導致可怕的問題。更好地避免它。 – wildplasser
有人告訴我cond必須是布爾值,所以我只是把它作爲int。 –