c语言定义静态结构体,C语言结构体的静态赋值

最近对结构体静态赋值主要使用以下方法,

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;

};

struct usr_cache my_cache1 =

{

.flag = 20,

.limit = 100,

};

注意,必须带上'.'号,不然的话会产生错误,提示变量未声明。‘.’表示自身内部的意思。

利用以上静态定义方法,可以将结构体变量的静态初始化声明为宏。实例如下:

# define INIT_CACHE(cache) {.flag = 20, .limit = 100, }

struct usr_cache my_cache1 = INIT_CACHE(my_cache1);

该形式的宏在预编译的时候会展开,变成与上面一致,即:

struct usr_cache my_cache1 =

{

.flag = 20,

.limit = 100,

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值