我有一个自定义结构,我希望有一个类似于CGRectZero的定义。
这样我可以有一个我可以测试的无效结构的无效结构。
答案 0 :(得分:3)
它是c和目标c代码的混合器。在这种情况下,您必须使用.mm扩展名来命名该文件。
#define MyStructZero MyStructMake(0,0)
MyStruct MyStructsMake(int,int);
typedef struct MyStruct {
int a;
int b;
} MyStruct;
c功能
MyStruct MyStructMake(int a, int b)
{
MyStruct s;
s.a = a;
s.b = b;
return s;
}
在对象中进行测试
- (void) testStruct
{
MyStruct m = MyStructZero;
NSLog(@"%i", m.a);
}
答案 1 :(得分:2)
由于CGRectZero
等同于CGRectMake(0, 0, 0, 0)
,因此您应该使用类似的方法。编写一个初始化结构并制作宏的函数:
MyStructMake(int i, float f, char c, double d);
#define MyStructZero MyStructMake(0, 0.0, '0', 0.0)