static struct fuse_oprations hello_oper = {
.getattr = hello_getattr,
.readdir = hello_readdir,
.open = hello_open,
.read = hello_read,
};
No entiendo bien esta sintaxis C. Ni siquiera puedo buscar porque no sé el nombre de la sintaxis. ¿Que es eso?
c
c99
designated-initializer
Benjamín
fuente
fuente
Respuestas:
Esta es una característica de C99 que le permite establecer campos específicos de la estructura por nombre en un inicializador. Antes de esto, el inicializador necesitaba contener solo los valores, para todos los campos, en orden, lo que todavía funciona, por supuesto.
Entonces, para la siguiente estructura:
...puedes usar
...o:
...o incluso:
... aunque los dos últimos son solo para C99.
fuente
struct demo_s demo = { .first = 1, .first = 9 };
En uno de mis GCC, esto se compilará sin previo aviso y primero será el 9.Estos son los C99 inicializadores designados .
fuente
Se conoce como
designated initialisation
(consulte Inicializadores designados ). Una "lista de inicializadores", cada '.
' es un "designator
" que en este caso nombra a un miembro particular de lafuse_oprations
estructura ' ' para inicializar el objeto designado por elhello_oper
identificador ' '.fuente
Toda la sintaxis se conoce como inicializador designado como ya lo mencionó COD3BOY y se usa en general cuando necesita inicializar su estructura en el momento de la declaración a algunos valores específicos o predeterminados.
fuente