我知道结构是什么,但没有看到它的使用。 任何人都可以向我详细解释该代码的作用吗?
static struct option const long_options[] =
{
{"all", no_argument, NULL, 'a'},
{"kernel-name", no_argument, NULL, 's'},
{"sysname", no_argument, NULL, 's'}, /* Obsolescent. */
{"nodename", no_argument, NULL, 'n'},
{"kernel-release", no_argument, NULL, 'r'},
{"release", no_argument, NULL, 'r'}, /* Obsolescent. */
{"kernel-version", no_argument, NULL, 'v'},
{"machine", no_argument, NULL, 'm'},
{"processor", no_argument, NULL, 'p'},
{"hardware-platform", no_argument, NULL, 'i'},
{"operating-system", no_argument, NULL, 'o'},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
{NULL, 0, NULL, 0}
};
答案 0 :(得分:5)
这是struct option
元素的静态数组的初始化。这个结构将有四个元素(char*
,另一个,一个指针和一个字符),这些是值。请注意,数组以NULL值结束,以防止搜索通过结束,并注意如何使用与结构相关的一些常量。
答案 1 :(得分:1)
它定义了类型为long_options
的结构的静态数组(即在其他.c模块中不可见)常量数组option
。像{"all", no_argument, NULL, 'a'}
这样的各个行是struct option
类型的元素。我觉得这里没问题。
答案 2 :(得分:1)
此代码正在创建一个struct选项数组。每行包含该数组中项目的值。
从代码中我假设struct选项就像这样
struct option
{
const char * option_name;
enum argument_type argument;
void * pointer; //not enough context
char short_option;
};