C FAQ – ¿Podemos inicializar miembros de la estructura dentro de la estructura de definición?

programación C FAQ: Podemos inicializar miembros de la estructura dentro de la estructura de definición? Aquí, también aprenderemos cómo podemos inicializar los miembros de la estructura ?

Que: Podemos inicializar miembros de la estructura dentro de la estructura de definición?

No!
No se puede inicializar una estructura con miembros de su declaración, considere el código dado (que es incorrecto y compilador genera el error).

struct numbers{
int a=10;
int b=20;
};

En este caso, estamos inicializando un con 10 y b con 20 que no va a ser ejecutado por el compilador y compilador return un error.

Veamos el ejemplo de error y vuelve por el compilador

#include <stdio.h>
struct numbers{
int a=10;
int b=20;
};
int main()
{
//structure variable declaration
struct numbers num;
//printing the structure members
printf("a=%d, b=%dn",num.a, num.b);
return 0;
}

salida

prog.c:4:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
int a=10;
^
prog.c: In function ‘main’:
prog.c:14:27: error: ‘struct numbers’ has no member named ‘a’
printf("a=%d, b=%dn",num.a, num.b);
^
prog.c:14:34: error: ‘struct numbers’ has no member named ‘b’
printf("a=%d, b=%dn",num.a, num.b);
^
prog.c:11:17: warning: variable ‘num’ set but not used [-Wunused-but-set-variable]
struct numbers num;
^~~

Cómo inicializar miembros de la estructura?

While variable de declarar de estructura (objeto a la estructura), podemos asignar los valores de los miembros.

Sintaxis:

struct structure_name structure_variable_name ={value1, value2};

Ejemplo:

struct numbers num ={10,20};

programa correcta:

#include <stdio.h>
struct numbers{
int a;
int b;
};
int main()
{
//structure variable declaration
struct numbers num ={10,20};
//printing the structure members
printf("a=%d, b=%dn",num.a, num.b);
return 0;
}

salida

    a=10, b=20


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *