A struct-declaration is a type-declaration (16.5) that declares a new struct: struct-declaration : attributesstruct-modifiersstructidentifierstruct-interfacesstruct-body; A struct-declaration consists of an optional set of attributes (24), followed by an optional set of struct-modifiers (18.1.1), followed by the keyword struct and an identifier that names the struct, followed by an optional struct-interfaces specification (18.1.2), followed by a struct-body (18.1.3), optionally followed by a semicolon.