警告:'long_opts'可以在此函数中未初始化使用[-Wyybe-uninitialised]

时间:2014-09-26 18:41:35

标签: c gcc

所以我已经获得了这个代码,我应该在我的代码中使用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]

目前我想知道两个邪恶中的哪一个可能是什么,因为我绝对找不到解决方案。

1 个答案:

答案 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的值未定义