2012-04-25 20 views
18

enter image description here Bunu çözemedim .. Kuyruk uygularım. beklenen '=', ',', ';', 'asm' veya '__attribute__' önce '.' belirteç

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

Sonra basit bir program yazdım ve aynı sorun devam: komple kod yazmadan sonra hata aşağıda listelenmiştir vardı. Bunu nasıl çözeceğimizi anlayamadım. stackoverflow.com and google.com'da çok fazla çözüm buldum ama yine de bunu çözemedim.Lütfen yardım edin.

Ben 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

Teşekkür A Lot adamlar .. ben cevap aldım. Benim için öğrendiğim dersler gibi. Her neyse siz en iyisisiniz. –

cevap

12

Q.front = 0; basit bir başlatıcı değildir, yürütülebilir koddur; Bir fonksiyonun dışında gerçekleşemez. Q için uygun bir başlatıcı kullanın.

struct Queue Q = {0, 0}; 

veya (sadece C olarak henüz tüm derleyiciler mevcut değil) adında başlatıcı sözdizimi ile

:

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

Ya, ben kavramını anladım.Çok Çok –

+0

Teşekkürler Bu bana yardımcı oldu – achoora

5

Sen Genel kapsamda Q.front = 0; Q.rear = 0; kullanarak değişkeni başlatmak edemez etmek istiyorum. Bu ifadeler sizin durumunuzda main'un içinde olmalıdır.

3

@Naveen bir yapı bir üyesine atanamıyor dediği gibi o küresel kapsamda. C sürümüne bağlı bu yapabileceğini olsa:

struct Queue q = {0,0}; 

veya

struct Queue q = {.front = 0, .rear = 0 }; 
İlgili konular