Якщо ви сумніваєтесь, перевірте вихід асемблера. Наприклад, напишіть невеликий, мінімальний фрагмент, наприклад, як це
#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
та попереднє. Подумайте, що має показати, чи є реальні відмінності. Я думаю, що занадто багато людей мають бачення того, що вони вважають компілятором, але наприкінці дня слід знати, як перевірити будь-які теорії.