896Fermer898
GodzilLe 14/05/2015 à 10:57
Comme bien sur le compilateur n'optimise pas, la seule difference que genere cette difference de code:
bool isMul3 = ( x == ((x / 3) * 3) ); bool isMul5 = ( x == ((x / 5) * 5) );

vs bool isMul3 = ( (x % 3) == 0 ); bool isMul5 = ( (x % 5) == 0 );

C'est l'ordre des registres sur deux cmp grin 804838c: 39 d8 cmp %ebx,%eax 804838e: 0f 94 c0 sete %al 8048391: 89 c7 mov %eax,%edi 8048393: b8 56 55 55 55 mov $0x55555556,%eax 8048398: f7 eb imul %ebx 804839a: 29 ca sub %ecx,%edx 804839c: 8d 04 52 lea (%edx,%edx,2),%eax 804839f: 39 d8 cmp %ebx,%eax
VS 804838c: 39 c3 cmp %eax,%ebx 804838e: 0f 94 c0 sete %al 8048391: 89 c7 mov %eax,%edi 8048393: b8 56 55 55 55 mov $0x55555556,%eax 8048398: f7 eb imul %ebx 804839a: 29 ca sub %ecx,%edx 804839c: 8d 04 52 lea (%edx,%edx,2),%eax 804839f: 39 c3 cmp %eax,%ebx