nel kernel di Linux, vedo una dichiarazione di un array di struct che assomiglia a questoC array di struct dichiarazione
struct SomeStructName [] ={
[SOMEWEIRD_NAME] = {
.field1 = "some value"
},
[SOMEWEIRD_NAME2] = {
.field1 = "some value1"
},
}
Non ho mai visto una dichiarazione del genere, in particolare non riesco a capire cosa [SOMEWEIRD_NAME]
significa, e perché è usato.
Si tratta di un'estensione GNU per [inizializzatori designati] (https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html). – Kninnug
@Kninnug non è un'estensione GNU, è valido C99 – ouah
@ouah pensavo che C99 permettesse solo la sintassi '.field'. Sembra che mi sia sbagliato, sebbene GCC abbia una sintassi aggiuntiva non nello standard. – Kninnug