[Spice-devel] [PATCH spice] Add missing struct field initializers

Hans de Goede hdegoede at redhat.com
Wed Apr 25 05:36:01 PDT 2012


Hi,

On 04/25/2012 02:31 PM, Daniel P. Berrange wrote:
> On Wed, Apr 25, 2012 at 01:46:20PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> $subject: Why? The C standard guarantees that if any
>> member of a struct (or array) gets initialized all non
>> specifically initialized members will get initalized
>> to a value of 0.
>
> While you are correct that they get initialized to zero if
> omitted, this does not mean your code is going to be bug
> free by relying on those semantics.
>
> For example consider code
>
>    struct demo {
>       int foo;
>    };
>
> and somewhere else miles away in the code, an initializer:
>
>   struct demo v = { 1 };
>
> So 'foo' get the value '1'
>
> Now someone comes along and changes the struct to
>
>    struct demo {
>       int bar;
>       int foo;
>    };
>
> Now 'bar gets the value 1, but 'foo' gets silently defaulted
> to '0'. The initializer is still syntactically correct, but
> it is clearly not semantically correct.

Hmm, not really a strong argument, as this breaks the always
add new struct members at the end rule. Anyways I can live with
the change -> ACK.

Regards,

Hans



More information about the Spice-devel mailing list