最近对结构体静态赋值主要使用以下方法,
对于内部变量比较少的结构体,使用该方法可以为结构体的内部变量一一赋值,并且需要按照顺序一一对应。如果遇到内部变量比较多,只需要赋值其中几个必要值的话,使用该方法就会特别麻烦。可以使用以下方法:
注意,必须带上'.'号,不然的话会产生错误,提示变量未声明。‘.’表示自身内部的意思。
struct usr_cache
{
int limit;
char *name;
};
struct usr_cache my_cache =
{
100,
"my_cache",
};
或者
struct
{
int limit;
char *name;
}my_cache =
{
100,
"my_cache",
};
对于内部变量比较少的结构体,使用该方法可以为结构体的内部变量一一赋值,并且需要按照顺序一一对应。如果遇到内部变量比较多,只需要赋值其中几个必要值的话,使用该方法就会特别麻烦。可以使用以下方法:
struct usr_cache
{
int limit;
char *name;
int flag;
};
<pre name="code" class="cpp">struct usr_cache my_cache1 =
{
.flag = 20,
.limit = 100,
};
注意,必须带上'.'号,不然的话会产生错误,提示变量未声明。‘.’表示自身内部的意思。
利用以上静态定义方法,可以将结构体变量的静态初始化声明为宏。实例如下:
# define INIT_CACHE(cache)