una semirrecta segmentos segmento rectas recta rayos que punto plano para niños linea geometria ejemplos c c99 designated-initializer

semirrecta - ¿Qué significa punto(.) En un inicializador de estructura?



segmento de recta (3)

static struct fuse_oprations hello_oper = { .getattr = hello_getattr, .readdir = hello_readdir, .open = hello_open, .read = hello_read, };

No entiendo esta sintaxis C bien. Ni siquiera puedo buscar porque no conozco el nombre de la sintaxis. ¿Que es eso?


Esta es una característica C99 que le permite establecer campos específicos de la estructura por nombre en un inicializador. Antes de esto, el inicializador debía contener solo los valores, para todos los campos, en orden, lo que aún funciona, por supuesto.

Entonces para la siguiente estructura:

struct demo_s { int first; int second; int third; };

...puedes usar

struct demo_s demo = { 1, 2, 3 };

...o:

struct demo_s demo = { .first = 1, .second = 2, .third = 3 };

...o incluso:

struct demo_s demo = { .first = 1, .third = 3, .second = 2 };

... aunque los dos últimos son solo para C99.



Se conoce como designated initialisation (ver Inicializadores designados ). Una "lista de inicializadores", cada '' . ''es un'' designator ''que en este caso nombra un miembro particular de la estructura'' fuse_oprations ''para inicializar para el objeto designado por el identificador'' hello_oper ''.