Durante la lettura di un articolo, mi sono imbattuto nel seguente funzione:sintassi dispari in C++: ritorno {.name = valore, ...}
SolidColor::SolidColor(unsigned width, Pixel color)
: _width(width),
_color(color) {}
__attribute__((section(".ramcode")))
Rasterizer::RasterInfo SolidColor::rasterize(unsigned, Pixel *target) {
*target = _color;
return {
.offset = 0,
.length = 1,
.stretch_cycles = (_width - 1) * 4,
.repeat_lines = 1000,
};
}
Qual è l'autore facendo con l'istruzione return? Non ho mai visto nulla di simile prima, e non so come cercarlo ... È valido anche per C semplice?
Edit: link to the original article
Valido in C, estensione non standard di alcuni compilatori per C++ (a partire da C++ 11, questa funzionalità non è nello standard C++.) –
Vedere [lo standard C] (http: //www.open- std.org/jtc1/sc22/wg14/www/docs/n1570.pdf), sezione _6.5.2.5 Caratteri letterali composti, punto 10 (relativi agli inizializzatori designati). – Michael
Sono abbastanza sicuro che sia valido per C semplice e non valido per C++. – davmac