包实现.h:

typedef struct node {
  struct node *next;
  char *element;
  int repeats;
} Node;

typedef struct{
  size_t size;
  Node *head;
}Bag;

在bag.c(其中包括bag.h,其中包括bag implementation.h)中出错的行:
Bag bag_union(Bag bag1, Bag bag2){
  Bag union;
  return bag1;

}

错误:
bag.c: In function 'bag_union':
bag.c:188:12: error: expected '{' before ';' token
bag.c:188:7: error: two or more data types in declaration specifiers
make: *** [bag.o] Error 1

如果我尝试编译而不创建包,那么它就可以正常工作。怎么了?

最佳答案

union是C中的保留字,因此不能有这样的变量。只需重命名它。

关于c - 当我尝试声明bag struct时出错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36827545/

10-13 02:44