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

时间:2012-04-25 07:09:53

标签: c

enter image description here无法解决此问题.. 我正在实施一个队列。写完完整代码后,我遇到了错误:

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

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

我想initialize globally Q.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;
}

3 个答案:

答案 0 :(得分:13)

Q.front = 0;不是简单的初始化程序,它是可执行代码;它不能在函数之外发生。为Q使用适当的初始值设定项。

struct Queue Q = {0, 0};

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

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

struct Queue q = {0,0};

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