C“未知类型”中的枚举错误

时间:2017-04-02 03:01:53

标签: c enums

我一直收到“未知类型名称'的地方',即使我写的枚举正确我也看不出错误我的错误。谢谢

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
void pass(place x);

typedef enum{

house, second

} place;

int main()
{

pass(house);

return 0;
}

void pass(place x){

 if(x == house){
  printf("We are in a house \n")
  }else if(x == second){
  printf("We live in the second house \n");
 }

 return;

 }

1 个答案:

答案 0 :(得分:3)

您的enum place声明没问题。问题是你在知道place的存在之前用地方定义了一个函数。在pass()功能运行之前,先更改顺序并定义枚举位置。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>


typedef enum{
   house, 
   second
} place;

void pass(place x); // This function forward declaration must be after you defined place.

int main()
{ /* .. */ }