Authors: Jay Ghiron
Date: 2026-03-25
Submitted against: C23
Status: Open
The proposal N3722 was framed as a clarification, rather than a new feature. It appears that this was never voted on, however. Specifically this is the result of discussion in GCC issue 115566.
Another issue in initialization is that braced initializers used to initialize objects with scalar type are not specified as allowing trailing commas (see reflector message 34083, 25 Sep 2025, and subsequent discussion):
The initializer for a scalar shall be a single expression, optionally enclosed in braces, or it shall be an empty initializer.
(C23 6.7.11 "Initialization" paragraph 12.)
Existing implementations do not reject using trailing commas for this purpose, and there seems to be no reason to reject trailing commas here.
Is the following declaration meant to be valid in C23?
char x[]=("abc");
Is the following declaration meant to be valid?
int y={0,};