[C con Clase] sintaxis incorrecta al declarar un tipo static struct
Steven Richard Davidson
stevenrichard.davidson en gmail.com
Jue Jul 16 16:31:51 CEST 2009
Hola Susana,
On Thu, Jul 16, 2009 at 6:07 AM, Susana Sacie<susanitis en gmail.com> wrote:
> VC++ me da muchos errores de sintaxis al intentar hacer la siguiente
> declaración:
>
> struct dg_param {
> int group;
> char *name;
> char sfid;
> u_int16_t fid;
> char tag;
> };
>
> static struct dg_param dg_params[] = {
> { .name = "COM", .sfid = 0x1e, .fid = 0x011e, .tag = 0x60, },
> { .group = 1, .name = "DG1", .sfid = 0x01, .fid = 0x0101, .tag = 0x61, },
> { .group = 2, .name = "DG2", .sfid = 0x02, .fid = 0x0102, .tag = 0x75, },
> { .group = 3, .name = "DG3", .sfid = 0x03, .fid = 0x0103, .tag = 0x63, },
> { .group = 4, .name = "DG4", .sfid = 0x04, .fid = 0x0104, .tag = 0x76, },
> { .group = 5, .name = "DG5", .sfid = 0x05, .fid = 0x0105, .tag = 0x65, },
> { .group = 6, .name = "DG6", .sfid = 0x06, .fid = 0x0106, .tag = 0x66, },
> { .group = 7, .name = "DG7", .sfid = 0x07, .fid = 0x0107, .tag = 0x67, },
> { .group = 8, .name = "DG8", .sfid = 0x08, .fid = 0x0108, .tag = 0x68, },
> { .group = 9, .name = "DG9", .sfid = 0x09, .fid = 0x0109, .tag = 0x69, },
> { .group = 10, .name = "DG10", .sfid = 0x0a, .fid = 0x010a, .tag = 0x6a, },
> { .group = 11, .name = "DG11", .sfid = 0x0b, .fid = 0x010b, .tag = 0x6b, },
> { .group = 12, .name = "DG12", .sfid = 0x0c, .fid = 0x010c, .tag = 0x6d, },
> { .group = 13, .name = "DG13", .sfid = 0x0d, .fid = 0x010d, .tag = 0x6e, },
> { .group = 14, .name = "DG14", .sfid = 0x0e, .fid = 0x010e, .tag = 0x6f, },
> { .group = 15, .name = "DG15", .sfid = 0x0f, .fid = 0x010f, .tag = 0x70, },
> { .group = 16, .name = "DG16", .sfid = 0x10, .fid = 0x0110, .tag = 0x75, },
> { .name = "SOD", .sfid = 0x1d, .fid = 0x011d, .tag = 0x77, },
> { 0 }
> };
>
> ¿por qué no me acepta esta estructura? , gracias.
>
No puedes indicar el nombre del miembro de la estructura en la
inicialización. Solamente puedes dar los valores. En tu caso,
simplemente escribe los valores en el orden de los miembros que
aparecen en la definición de la estructura. Esto es,
static struct dg_param dg_params[] = {
{ 0, "COM", 0x1e, 0x011e, 0x60, },
{ 1, "DG1", 0x01, 0x0101, 0x61, },
{ 2, "DG2", 0x02, 0x0102, 0x75, },
{ 3, "DG3", 0x03, 0x0103, 0x63, },
{ 4, "DG4", 0x04, 0x0104, 0x76, },
...
{ 0 }
};
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase