Я хочу назначить определенное значение глобальной переменной (определяемой пользователем) на языке программирования C. Когда я делаю это из любой другой функции или основной, это нормально. Но когда я делаю это из глобального пространства (вне любой функции), он дает следующую ошибку компиляции:
[expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token]
Ниже приведен фрагмент кода, вызывающий проблему:
#include <stdio.h>
#define MAX_SIZE 5
typedef struct
{
int val[MAX_SIZE];
int top;
}stack_t;
stack_t s;
s.top = -1; // <== Initialization from here is causing compilation error
main()
{
//s.top = -1; < === Initialization from here is fine
printf("s.top =%d\n", s.top);
return 0;
}
Но такое же назначение для целых переменных не дает только предупреждения
#include <stdio.h>
int i,j,k,l;
k=10;
main()
{
printf("i= %d, j=%d k=%d l=%d\n", i, j, k, l);
return 0;
}
Может кто-нибудь объяснить причину этого?