在”之前预期’=’,’,’,’;’,’asm’或’__attribute__’。 代币

在此处输入图像描述 无法解决这个问题..我正在实施一个队列。 写完完整代码后,我遇到了下面列出的错误:

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

然后我写了一个简单的程序,但同样的问题仍然存在。 无法理解如何解决这个问题。 我已经在stackoverflow.com and google.com查了很多解决方案,但仍然无法解决这个问题。请帮忙。

我想initialize globally Q.front = Q.rear = Any value

 #include  #include  struct Queue { int front, rear; int queue[10] ; }; struct Queue Q; Q.front = 0; Q.rear = 0; int main() { return 0; } 

Q.front = 0; 不是一个简单的初始化器,它是可执行代码; 它不能发生在函数之外。 为Q使用适当的初始Q

 struct Queue Q = {0, 0}; 

或者使用命名的初始化语法(并非在所有编译器中都可用,并且仅在C中可用):

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

您无法使用Q.front = 0; Q.rear = 0;初始化变量Q.front = 0; Q.rear = 0; Q.front = 0; Q.rear = 0; 在全球范围内。 在您的情况下,这些陈述应该在main内部。

正如@Naveen所说,您不能分配给全局范围内的结构的成员。 根据C的版本,你可以这样做:

 struct Queue q = {0,0}; 

要么

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