赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。