2012-04-25 3 views
18

enter image description here Impossible de résoudre ce problème .. Je suis en train d'implémenter une file d'attente. Après avoir écrit le code complet que j'avais l'erreur ci-dessous:attendu '=', ',', ';', 'asm' ou '__attribute__' avant '.' jeton

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

Alors j'ai écrit un programme simple, mais même problème persiste. Impossible de comprendre comment résoudre cela. J'ai regardé beaucoup de solutions dans stackoverflow.com and google.com mais ne pouvais toujours pas résoudre ce problème. S'il vous plaît aider.

Je voudrais 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

Merci Un gars .. Je Lot obtenu la réponse. C'est comme les leçons apprises pour moi. Quoi qu'il en soit, vous êtes les meilleurs. –

Répondre

12

Q.front = 0; n'est pas un simple initialiseur, c'est un code exécutable; cela ne peut pas se produire en dehors d'une fonction. Utilisez un initialiseur approprié pour Q.

struct Queue Q = {0, 0}; 

ou avec la syntaxe d'initialisation nommé (non disponible dans tous les compilateurs, et encore seulement en C):

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

Ya, j'ai compris le concept.Merci beaucoup –

+0

Merci Ça m'a aidé – achoora

5

Vous ne pouvez pas initialiser variable à l'aide Q.front = 0; Q.rear = 0; portée mondiale. Ces déclarations doivent être à l'intérieur main dans votre cas.

3

Comme @Naveen a dit que vous ne pouvez pas attribuer à un membre d'une struct est dans la portée globale. Selon la version de C si vous pouvez le faire:

struct Queue q = {0,0}; 

ou

struct Queue q = {.front = 0, .rear = 0 }; 
Questions connexes