Подтвердить что ты не робот

Ожидается '=', ',', ';', 'asm' или '__attribute__' до '.' знак

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;
}
4b9b3361

Ответ 1

Q.front = 0; не является простым инициализатором, он является исполняемым кодом; это не может произойти вне функции. Используйте правильный инициализатор для Q.

struct Queue Q = {0, 0};

или с именованным синтаксисом инициализатора (недоступным во всех компиляторах и пока только в C):

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

Ответ 2

Вы не можете инициализировать переменную, используя Q.front = 0; Q.rear = 0; в глобальной области. Эти утверждения должны быть внутри main в вашем случае.

Ответ 3

Как @Naveen сказал, что вы не можете назначить член структуры, находящейся в глобальной области. В зависимости от версии C, если вы можете это сделать:

struct Queue q = {0,0};

или

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