我在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。 –