所以我已经获得了这个代码,我应该在我的代码中使用getopt_long()
函数从命令行读取选项并将它们传递给切换菜单。问题在于该函数,如果我没有初始化long_opts
的值,我收到以下错误:
error: 'long_opts' undeclared (first use in this function)
如果我确实初始化了它的值,我会收到标题中的错误:
warning: 'long_opts' may be used uninitialised in this function [-Wmaybe-uninitialised]
目前我想知道两个邪恶中的哪一个可能是什么,因为我绝对找不到解决方案。
答案 0 :(得分:1)
如果你使用的是未初始化的结构,那么就像这样初始化它:
static struct option long_options[] = {
{"add", required_argument, 0, 0 },
{"append", no_argument, 0, 0 },
{"delete", required_argument, 0, 0 },
{"verbose", no_argument, 0, 0 },
{"create", required_argument, 0, 'c'},
{"file", required_argument, 0, 0 },
{0, 0, 0, 0 }
};
请显示您的代码
错误:' long_opts'未申报
如果您未声明变量并在函数中使用它,则会出现此错误。
警告:' long_opts'可以在此功能中使用未初始化
这不是错误,它是"警告"如果你是声明var或struct,则会出现此警告,但不要初始化它并尝试在函数或表达式中使用它,但这些var或struct的值未定义