2012-04-25 42 views
18

enter image description here No se pudo resolver esto .. Estoy implementando una cola. Después de escribir el código completo que tenía el error aparece a continuación:expected '=', ',', ';', 'asm' o '__attribute__' before '.' token

expected '=', ',', ';', 'asm' or '__attribute__' before '.' token

Entonces me escribió un programa sencillo, pero el mismo problema persiste. No pude entender cómo resolver esto. He buscado muchas soluciones en stackoverflow.com and google.com pero todavía no he podido solucionar esto. Ayuda.

me gustaría initialize globallyQ.front = Q.rear = Any value

#include <stdio.h> 
#include <stdlib.h> 
struct Queue 
{ 
    int front, rear; 
    int queue[10] ; 
}; 
struct Queue Q; 
Q.front = 0; 
Q.rear = 0; 

int main() 
{ 
    return 0; 
} 
+0

chicos muchas gracias .. me dio la respuesta. Es como lecciones aprendidas para mí. De todos modos, ustedes son los mejores. –

Respuesta

12

Q.front = 0; no es un inicializador simple, es código ejecutable; no puede ocurrir fuera de una función. Use un inicializador adecuado para Q.

struct Queue Q = {0, 0}; 

o con la sintaxis de llamada de inicialización (no disponible en todos los compiladores, y hasta ahora sólo en C):

struct Queue Q = {.front = 0, .rear = 0}; 
+0

Ya, entendí el concepto. Muchas gracias –

+0

Gracias Me ayudó – achoora

5

No se puede inicializar la variable usando Q.front = 0; Q.rear = 0; en el ámbito global. Esas declaraciones deben estar dentro de main en su caso.

3

Como @Naveen dijo que no se puede asignar a un miembro de una estructura que está en alcance global. Dependiendo de la versión de C aunque se puede hacer esto:

struct Queue q = {0,0}; 

o

struct Queue q = {.front = 0, .rear = 0 }; 
Cuestiones relacionadas