2012-04-25 23 views
18

enter image description here Impossibile risolvere questo problema. Sto implementando una coda. Dopo aver scritto il codice completo che ho avuto l'errore elencati di seguito:previsto '=', ',', ';', 'asm' o '__attributo__' prima di '.' token

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

Poi ho scritto un programma semplice, ma lo stesso problema persiste. Impossibile capire come risolvere questo. Ho esaminato le soluzioni in stackoverflow.com and google.com molto ma ancora non potrei riuscire a risolvere questo.Si prega di aiutare.

Vorrei 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

ragazzi grazie mille .. Ho avuto la risposta. È come le lezioni apprese per me. Tutti voi ragazzi siete i migliori. –

risposta

12

Q.front = 0; non è un inizializzatore semplice, è un codice eseguibile; non può verificarsi al di fuori di una funzione. Utilizzare un inizializzatore appropriato per Q.

struct Queue Q = {0, 0}; 

o con la sintassi di nome initializer (non disponibile in tutti i compilatori, e finora solo in C):

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

Ya, ho capito il concetto. Grazie mille –

+0

Grazie mi ha aiutato – achoora

5

Non è possibile inizializzare variabili utilizzando Q.front = 0; Q.rear = 0; in ambito globale. Queste affermazioni dovrebbero essere all'interno di main nel tuo caso.

3

Come @Naveen detto che non è possibile assegnare a un membro di una struttura che è in ambito globale. A seconda della versione di C anche se si potrebbe fare questo:

struct Queue q = {0,0}; 

o

struct Queue q = {.front = 0, .rear = 0 }; 
Problemi correlati