在Objective-C中转换为结构

在Objective-C中转换为结构,objective-c,c,struct,casting,Objective C,C,Struct,Casting,我从未见过这样的演员: (CGRect){.origin = CGPointZero, .size = contentSize} (CGPoint){0,1} 有人能解释一下逻辑吗?这是C语言的特性吗?还是只在Objective-C中? 谢谢。它叫a,是C语言的一个特性。前面的强制转换是一种在单行上初始化结构或将其作为函数参数的方便方法,例如 结构初始化: struct a test; test.member1 = 3; test.member2 = 5; // equals struc

我从未见过这样的演员:

(CGRect){.origin = CGPointZero, .size = contentSize}
(CGPoint){0,1}
有人能解释一下逻辑吗?这是C语言的特性吗?还是只在Objective-C中? 谢谢。

它叫a,是C语言的一个特性。前面的强制转换是一种在单行上初始化结构或将其作为函数参数的方便方法,例如

结构初始化:

struct a test;
test.member1 = 3;
test.member2 = 5;

// equals 

struct a test = (struct a){ .member1 = 3, .member2 = 5 };
函数参数传递:

[self function1:test];

// equals

[self function1:(struct a){ .member1 = 3, .member2 = 5 }];
它叫a,是C语言的一个特点。前面的强制转换是一种在单行上初始化结构或将其作为函数参数的方便方法,例如

结构初始化:

struct a test;
test.member1 = 3;
test.member2 = 5;

// equals 

struct a test = (struct a){ .member1 = 3, .member2 = 5 };
函数参数传递:

[self function1:test];

// equals

[self function1:(struct a){ .member1 = 3, .member2 = 5 }];
它叫a,是C语言的一个特点。前面的强制转换是一种在单行上初始化结构或将其作为函数参数的方便方法,例如

结构初始化:

struct a test;
test.member1 = 3;
test.member2 = 5;

// equals 

struct a test = (struct a){ .member1 = 3, .member2 = 5 };
函数参数传递:

[self function1:test];

// equals

[self function1:(struct a){ .member1 = 3, .member2 = 5 }];
它叫a,是C语言的一个特点。前面的强制转换是一种在单行上初始化结构或将其作为函数参数的方便方法,例如

结构初始化:

struct a test;
test.member1 = 3;
test.member2 = 5;

// equals 

struct a test = (struct a){ .member1 = 3, .member2 = 5 };
函数参数传递:

[self function1:test];

// equals

[self function1:(struct a){ .member1 = 3, .member2 = 5 }];

{.origin=CGPointZero,.size=contentSize}
是指定的结构初始值设定项-C99功能。
{.origin=CGPointZero,.size=contentSize}
是指定的结构初始值设定项-C99功能。
{.origin=CGPointZero,.size=contentSize}
是指定的结构初始值设定项-C99功能。
{.origin=CGPointZero,.size=contentSize}
是一个指定的结构初始值设定项-一个C99功能。我怀疑OP是问这个问题的:指定的初始值设定项只允许在初始化结构中使用,并且不需要强制转换。根据上下文,这也可能是一个复合文字功能().这就是我要问的…知道这是件好事。想想这些年来我一直在用CGPointMake()创建CGPoints…我怀疑OP所问的是什么:仅在初始化构造中允许指定的初始值设定项,并且它们不需要强制转换。根据上下文,这可能也是一个复合文字功能().这就是我要问的…知道这是件好事。想想这些年来我一直在用CGPointMake()创建CGPoints…我怀疑OP所问的是什么:仅在初始化构造中允许指定的初始值设定项,并且它们不需要强制转换。根据上下文,这可能也是一个复合文字功能().这就是我要问的…知道这是件好事。想想这些年来我一直在用CGPointMake()创建CGPoints…我怀疑OP所问的是什么:仅在初始化构造中允许指定的初始值设定项,并且它们不需要强制转换。根据上下文,这可能也是一个复合文字功能().这就是我要问的…知道这是件好事。想想这些年来我一直在用CGPointMake()创建CGPoints。。。