В случае сомнений проверьте вывод ассемблера. Например, напишите небольшой минимальный фрагмент, например, такой
#import <Cocoa/Cocoa.h>
void test() {
CGRect r = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f);
NSLog(@"%f", r.size.width);
}
Затем скомпилируйте его на ассемблер с -S
опцией.
gcc -S test.m
Сохраните вывод ассемблера в test.s
файл, удалите .0f
из него константы и повторите команду компиляции. Затем проделайте diff
новую test.s
и предыдущую. Думаю, это должно показать, есть ли какие-то реальные различия. Я думаю, слишком многие имеют представление о том, что, по их мнению, делает компилятор, но, в конце концов, нужно знать, как проверить любые теории.