预期标识符 - C.

Ian*_*ker -1 c struct typedef

我遇到了结构问题.在每个函数声明之前,我收到有关标识符的错误.错误发生在'typedef','coords stackCreate'和'coords stackPush'之前

typedef struct coords * coordPtr
{
  int x = -1;
  int y = -1;
  struct coords * next;
};

coords stackCreate(int x, int y){
  coordPtr stack = malloc(sizeof(coords));
  stack->x = x;
  stack->y = y;
  return stack;
}

coords stackPush(int x, int y, coords stack){
stack->next = malloc(sizeof(coords));
stack->next->x = x;
stack->next->y = y;
}
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助!

oua*_*uah 5

typedef struct coords * coordPtr
{
  int x = -1;
  int y = -1;
  struct coords * next;
};
Run Code Online (Sandbox Code Playgroud)

应该

typedef struct coords 
{
  int x;
  int y;
  struct coords * next;
} *coordPtr;
Run Code Online (Sandbox Code Playgroud)

别名必须是最后的.您也无法在结构声明中提供默认初始值设定项.

编辑:

同样在您的程序中,您可以使用两种类型的别名: coordscoordPtr.如果您还想使用coords,还需要:

typedef struct coords coords;
Run Code Online (Sandbox Code Playgroud)