c语言中结构体中默认值,C Struct中的缺省值

探讨了在C语言中如何优雅地处理结构体的默认值,包括通过常量初始化、宏定义、函数以及X-Macros等方法,旨在简化代码和提高可读性。
摘要由CSDN通过智能技术生成

C Struct中的缺省值

我有这样的数据结构:

struct foo {

int id;

int路由;

int backup_route;

int current_route;

}

和一个叫做update()的函数,用来请求它的变化。

更新(42,dont_care,dont_care,new_route);

这真的很长,如果我添加一些东西的结构,我必须添加一个'dont_care'每EVERY更新(…)。

我正在考虑传递一个结构,而不是事先在“dont_care”中填充结构,而不是在函数调用中拼写。 我可以创build结构的默认值不考虑的地方,只是设置我关心的领域之后,我声明它作为一个局部variables?

struct foo bar = {.id = 42,.current_route = new_route};

更新(巴);

什么是最优雅的方式来传递我想expression更新function的信息?

我希望其他所有的东西都默认为-1('不关心'的密码)

虽然macros和/或函数(如已经提到的)将会工作(并且可能具有其他的积极效果(即,debugging钩子)),但是它们比需要的更复杂; 最简单也可能是最优雅的解决scheme是只定义一个用于variables初始化的常量:

const struct foo FOO_DONT_CARE = { // or maybe FOO_DEFAULT or something dont_care, dont_care, dont_c

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值