C code involving {}
c, curly-braces, static-initializer
Solution
This code is initializing a `struct` using funky C initializer syntax to initialize each field in order of declaration, see http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=421. An important side-effect in the case of this example is that remaining fields one doesnt specify values for get initialized to zeros.
This trick is a relatively common one in Win32 APIs - the API requires the size to be pre-set as a way of indicating the version the client code is compiled against - in many of these cases, one is also expected to clear the buffer, which would ordinarily involve a separate call to e.g. `memset` prior to initializing the size field with the `sizeof`.
See also Struct initialization of the C/C++ programming language? for related examples
Problem
I saw this in some C code: ``` Wininfo W = { sizeof(Wininfo) }; ``` What the heck does this mean?