2012-04-25 40 views
18

enter image description here Không thể giải quyết được điều này .. Tôi đang triển khai hàng đợi. Sau khi viết code hoàn chỉnh tôi đã có lỗi được liệt kê dưới đây:được mong đợi '=', ',', ';', 'asm' hoặc '__attribute__' trước '.' mã thông báo

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

Sau đó, tôi đã viết một chương trình đơn giản, nhưng cùng một vấn đề vẫn còn. Không thể hiểu cách giải quyết vấn đề này. Tôi đã xem xét các giải pháp trong stackoverflow.com and google.com rất nhiều nhưng vẫn không thể giải quyết vấn đề này.Vui lòng trợ giúp.

Tôi muốn 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

thanks a lot guys .. Tôi có câu trả lời. Nó giống như những bài học được học cho tôi. Dù sao các bạn là tốt nhất. –

Trả lời

12

Q.front = 0; không phải là trình khởi tạo đơn giản, nó là mã thực thi; nó không thể xảy ra bên ngoài một hàm. Sử dụng trình khởi tạo thích hợp cho Q.

struct Queue Q = {0, 0}; 

hoặc với cú pháp tên initializer (không có sẵn trong tất cả các trình biên dịch, và như được nêu ra chỉ trong C):

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

Ya, tôi hiểu khái niệm.Thanks A Lot –

+0

Cảm ơn Nó đã giúp tôi – achoora

5

Bạn không thể khởi tạo biến sử dụng Q.front = 0; Q.rear = 0; trong phạm vi toàn cầu. Các báo cáo này phải nằm trong số main trong trường hợp của bạn.

3

Như @Naveen nói bạn không thể gán cho một thành viên của một struct đó nằm trong phạm vi toàn cầu. Tùy thuộc vào phiên bản của C mặc dù bạn có thể làm điều này:

struct Queue q = {0,0}; 

hoặc

struct Queue q = {.front = 0, .rear = 0 }; 
Các vấn đề liên quan