On Mon, 8 Jul 2019 at 11:33, <t...@cock.li> wrote:
>
> There was recently a discussion with confusion regarding initialization
> with {} instead of {0} when initializing an empty array or struct. The
> former is not valid in C, but GCC permits it anyway even though it's not
> explained anywhere in the specs:
> char something[20] = {};

There is a warning with -Wpedantic:

init.c:1:22: warning: ISO C forbids empty initializer braces [-Wpedantic]
 char something[20] = {};
                      ^

> Is it missing from the specs or did I just fail to locate it? I checked
> all the C extension pages but none of them had it.

I think allowing {} is a necessary extension as a consequence of:
https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
and
https://gcc.gnu.org/onlinedocs/gcc/Empty-Structures.html

Allowing it for non-empty arrays does seem to be undocumented though.

Reply via email to