memset(****.reserved, 0xaa, sizeof(****.reserved))
不就行了
【 在 feiy (null) 的大作中提到: 】
对变量的赋值上,如果实现全数值赋值?
比如,定义了一个数据结构
typedef union {
u8 data[1024];
struct{
u8 var1
...
u8 varn;
u8 reserved[这里的长度会根据上述变量计算]
}sdata;
}STR_DATA;
简单地说,就是定义了固定长度的数据结构,保留去为了扩展用。
然后声明了一个常值,作为保存在flash的里缺省赋值
const STR_DATA strData ={
.sdata.var1 = xx1,
.....
.sdata.varn = xxn,
.sdata.reserved[]={0xAA}
};
注意最后一行,本意是将这个常值缺省的保留未用的区间,都赋值为0xAA
但是编译后的结果,实际是reserved[0]=0xAA,后面的全都是0了。
请问,这里有什么好的方法(比如宏定义,或者编译选项)可以实现将reserved[]全部
赋值为0xAA吗?
当然,手动本方法去全部赋值,也是可以的,但是不想每次添加几个成员变量后,都得
去改这里。
谢谢!
--
FROM 106.121.65.*