我在文件foo.h中有一个名为RandomEnum的枚举:
// foo.h typedef enum RandomEnum { ran_1 = 0,ran_2 } RandomEnum;
在另一个文件bar.h中,我试图使用RandomEnum作为参数类型:
// bar.h #import "foo.h" @interface bar : NSObject {} -(RandomEnum)echo:(RandomEnum)ran; @end
但是,编译器似乎不能识别RandomEnum.这样做是否可行?
编译器错误:
error: expected ')' before 'RandomEnum'
解决方法
C构造枚举RandomEnum不定义一个名为RandomEnum的类型,它定义了一个名为enum的类型.为了能够写入RandomEnum的类型,你需要使用一个typedef.