Em caso de dúvida, verifique a saída do montador. Por exemplo, escreva um pequeno trecho mínimo, ou seja, como este
#import <Cocoa/Cocoa.h>
void test() {
CGRect r = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f);
NSLog(@"%f", r.size.width);
}
Em seguida, compile-o no montador com a -S
opção.
gcc -S test.m
Salve a saída do assembler no test.s
arquivo, remova .0f
-a das constantes e repita o comando de compilação. Em seguida, faça uma diff
do novo test.s
e do anterior. Acho que isso deve mostrar se existem diferenças reais. Acho que muitos têm uma visão do que acham que o compilador faz, mas no final do dia, deve-se saber como verificar quaisquer teorias.