是否有實際需要,做到這一點:是否有任何理由使用核芯顯卡的數據類型與工作的UIView對象時
CGFloat x = 10.0f;
CGFloat y = 20.0f;
someView.center = CGPointMake(x, y);
的這個代替:
float x = 10.0;
float y = 20.0;
someView.center = CGPointMake(x, y);
...除了樣式考慮?
是否有任何性能影響?
是否有實際需要,做到這一點:是否有任何理由使用核芯顯卡的數據類型與工作的UIView對象時
CGFloat x = 10.0f;
CGFloat y = 20.0f;
someView.center = CGPointMake(x, y);
的這個代替:
float x = 10.0;
float y = 20.0;
someView.center = CGPointMake(x, y);
...除了樣式考慮?
是否有任何性能影響?
通常這些類型的數據類型用於可讀性,也用於可移植性。如果CoreGraphics庫改變它的實現或數據類型,CGFloat類型將幫助它更好地匹配API。考慮跨平臺的可移植性時,這也可能很重要。
我懷疑是否有任何性能差異 - 它可能最終仍然是編譯代碼中的浮點數。
請參閱this答案爲CGFloat的一個很好的解釋。它基本上是32位和64位平臺之間代碼可移植性的typedef。
那麼,前面的代碼使用'float'文字作爲可能是'double'的類型,而後面的代碼使用'double'文字作爲可能不等於'double'的類型。一個嚴格字面量的編譯器總是包含'float'格式的float文本和'double'格式的'double'文本,但真正的編譯器可能會存儲已經轉換爲變量類型的初始化值,變量是'CGFloat',當它不是(當你將它傳遞給一個需要'CGFloat'並且類型不匹配的函數時)。 – 2010-10-30 01:45:57