C 无法理解结构初始化
我遇到了困难的结构初始化C 无法理解结构初始化,c,arrays,struct,initialization,C,Arrays,Struct,Initialization,我遇到了困难的结构初始化 static struct option long_options[] = { /* These options set a flag. */ {"res", required_argument, NULL, 'r'}, {0, 0, 0, 0}, }; 有人能解释一下结构初始化吗? 我只知道这样的结构: struct point { int x;
static struct option long_options[] =
{
/* These options set a flag. */
{"res", required_argument, NULL, 'r'},
{0, 0, 0, 0},
};
有人能解释一下结构初始化吗?
我只知道这样的结构:
struct point {
int x;
int y;
};
请大家解释一下。 < P> C和C++是不同的语言。上面的一些含义取决于所考虑的语言是C还是C++。 程序必须在您未向我们显示的部分代码中包含
struct option
声明。声明:
static struct option long_options[] =
{
/* These options set a flag. */
{"res", required_argument, NULL, 'r'},
{0, 0, 0, 0},
};
设置此类选项的数组。大概,{0,0,0,0}
标志着选项数组的结束。它被称为一个
struct options
的long\u options
数组的第一个元素将其元素分别设置为“res”
,必需的\u参数
,NULL
和'r'
通过初始化,可以推断struct选项的元素是
- a
const char*
- 无论
必需参数的类型是什么。它可能是int
或enum
,甚至可能是bool
- 某种指针
int
(如果是C)或char
(如果是C++)
这不是结构声明。这是类型为struct option
的结构静态数组的定义
您需要在程序中的其他地方找到struct选项的声明。Astruct
可以有任意数量和类型的变量,甚至其他struct
和结构指针
还要记住,您的代码不显示任何结构声明。该结构的声明在其他地方出现。这是类型为struct option
的名为long\u options
的static
数组变量的定义(和初始化)
看到定义,我们可以猜测,您的struct
定义可能如下
struct option{
char * a;
<type of required_argument> b;
void * c;
char d;
};
struct选项{
char*a;
B
无效*c;
chard;
};
程序中的其他地方有一个结构选项。代码创建了<代码> static < /COD>数组,类型为<代码>结构选项> /Cord>,初始化其中的内容。它不是结构声明,而是变量声明。@ USER 4098326和初始化,即定义。C或C++?挑一个。谢谢你的评论。这是一个c文件。我知道它是在别的地方申报的。我找不到其声明的源文件。结束。。。意思是,一个哨兵。