W dniu 11 stycznia 2010 23:13 użytkownik Michael Buesch <[email protected]>
napisał:
> On Monday 11 January 2010 22:13:31 Rafał Miłecki wrote:
>> 2010/1/10 Michael Buesch <[email protected]>:
>> > On Sunday 10 January 2010 23:13:34 Rafał Miłecki wrote:
>> >> + s32 results_min[4];
>> >> + u8 vcm_final[4];
>> >> + s32 results[4][4];
>> >> + s32 miniq[4][2];
>> >> + memset(results_min, 0, sizeof(s32) * 4);
>> >> + memset(vcm_final, 0, sizeof(u8) * 4);
>> >> + memset(results, 0, sizeof(s32) * 4 * 4);
>> >> + memset(miniq, 0, sizeof(s32) * 4 * 2);
>> >
>> > Just initialize the variables to zero instead of doing a memset:
>> >
>> > + s32 results_min[4] = { 0, };
>> > + u8 vcm_final[4] = { 0, };
>> > + s32 results[4][4] = { 0, };
>> > + s32 miniq[4][2] = { 0, };
>>
>> Nice trick, thanks :) Just for two-dimensional arrays I'll have to hack it
>> to:
>> s32 results[4][4] = { { 0, }, { 0, }, { 0, }, { 0, } };
>> I believe.
>
> No I don't think so.
> It's C standard that uninitialized elements on automatic variables are
> initialized
> to zero, _if_ at least one element is initialized to something.
> So if you init one element to 0, all others will be 0, too.
> I think that should also work for multidimensional arrays. So my example
> s32 results[4][4] = { 0, };
> should do the right thing. Am I wrong?
Whoops, I should have explained what I mean. I am not sure what CFLAGS
"make" picks for compiled but I get:
CC [M] drivers/net/wireless/b43/phy_n.o
drivers/net/wireless/b43/phy_n.c: In function ‘b43_nphy_rev2_rssi_cal’:
drivers/net/wireless/b43/phy_n.c:887: warning: missing braces around initializer
drivers/net/wireless/b43/phy_n.c:887: warning: (near initialization
for ‘results[0]’)
for s32 results[4][4] = { 0, };
--
Rafał
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev