C variable tiene inicializador incompleta
-
26-09-2019 - |
Pregunta
Estoy tratando de hacer una estructura con un valor por defecto, como se describe aquí: valores por defecto en un C Struct . Sin embargo, tengo el código C, dentro de un archivo de cabecera:
/* tokens.h */
typedef struct {
char *ID;
char *KEY;
char *TYPE;
} tokens;
const struct tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
Y yo estoy recibiendo un error en la línea 7 que dice:
error: variable 'TOKENS_DFLT' has initializer but incomplete type
Puede alguien por favor me explique lo que es este problema y cómo se puede arreglar y evitar que en el futuro?
Solución
No se han definido struct tokens
. Que haya definido un struct
sin nombre y al mismo tiempo typedef
-ed que el nombre del tipo tokens
.
Si en cambio había definido
typedef struct tokens_ {
char *ID;
char *KEY;
char *TYPE;
} tokens;
A continuación, se podría declarar su constante como o bien
const struct tokens_ TOKENS_DFLT = { ... };
o
const tokens TOKENS_DFLT = { ... };
Como es, usted está entre dos aguas.
Otros consejos
Este:
const struct tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
debería ser:
const tokens TOKENS_DFLT = {
"id",
"key",
"type"
};
Desde que ha definido el nombre tokens
a struct tokens
media.