为什么这个程序在's'之前显示错误预期表达式

ide*_*con -5 c

这是一个使用stack获取输入的程序.我不明白为什么它显示表示scanf的错误,任何人都可以解释错误

#include<stdio.h>

struct stack 
{ 
  int top,n;     
}; typedef struct stack s;

int main(void) {
    scanf("%d",&s.n);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

dmg*_*dmg 7

s命名struct stack类型.不是那种类型的实例.

你能做的是:

s a_stack;
Run Code Online (Sandbox Code Playgroud)

然后使用 &a_stack.n