Ожидается '=', ',', ';', 'asm' или '__attribute__' до '.' знак
Не удалось решить это.
Я выполняю очередь. После написания полного кода у меня была ошибка, указанная ниже:
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;
}
Ответы
Ответ 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 };