2009-05-14 5 views
5

Ich bin heute auf dieses Stück Code gestoßen:Was macht {0.0}, {w, h}}?

CGRect rect = {{0,0}, {w, h}};

Hier hätte ich einen CGRectMake verwendet. Aber was macht dieses Ding in geklebten Klammern? Was für eine Spezialsyntax ist das? Keines meiner objektiven Bücher hat das jemals erwähnt.

+4

Es gibt bereits zwei Antworten, aber als zusätzliche Informationen ist CGRectMake im Grunde eine Inline-Funktion, die genau das tut und das Ergebnis zurückgibt. –

+0

Danke für die zusätzlichen Informationen – Thanks

Antwort

11

Es ist ein Standard-C-Struktur-Initialisierung-Konstrukt. Jede Struktur kann zur Deklarationszeit initialisiert werden, indem der Inhalt in geschweiften Klammern wie dieser angegeben wird. Da ein CGRect einen CGPoint und einen CGSize enthält, verwenden Sie einen Satz Klammern für den CGRect und dann einen weiteren Satz für jeden CGPoint & CGSize.