0
來源如下:NSSizeFromCGSize只不過是一個演員操作?
NS_INLINE NSSize NSSizeFromCGSize(CGSize cgsize) {
union _ {NSSize ns; CGSize cg;};
return ((union _ *)&cgsize)->ns;
}
對我來說這只是看起來像一個過於複雜的鑄件(讀取內存塊不同於原本打算)。是否有這個語法需要的原因?我只問,因爲我從來沒有見過這個。
嗯,有趣的,我不帶有任何錯誤時,試圖簡單地投,但也許這是因爲他們在相同的64位typedef操作。謝謝(你的)信息! – borrrden 2012-07-12 14:17:47
@borrrden - 你是對的,你可以在「投」的東西本身 - 這是一個NOP - 而在64位的NS和CG幾何類型只是彼此的別名,所以「投」的作品。有一個(未記錄的)限定'這似乎允許的類型是否相同的測試NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES' - 它是目前或者與值'1'或未定義的(而不是與取值爲0所定義的),可以定義使用'#if defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)&&(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES == 1)'來測試它。 – CRD 2012-07-12 20:01:29