我有一个函数,其中一个函数参数是一个整数。在函数调用期间,我将枚举数据类型传递给该函数。使用 gcc 构建后,对函数内部 INTEGER 变量的任何访问都会导致段错误。
示例代码:
void somefun (unsigned int nState)
{
switch (nState) // <-- Crashes on this line
{
//
// functionality here ...
//
}
}
enum {
UNDEFINED = -1,
STATE_NICE,
STATE_GREEDY
} E_STATE;
int main (int argc, char *argv [])
{
somefun (STATE_NICE);
}
最佳答案
首先,枚举是在 main() 中定义的,对于 somefun() 不存在。您应该在 main 之外定义枚举,尽管我看不出这是如何导致崩溃的。
在 main 之外定义枚举后,您应该将 somefun 定义为 somefun( E_STATE nState ) 并再次测试。
关于c - 枚举数据类型和 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/613614/