Supponendo che ho 2 variabili:C++: è sicuro confrontare un intero a 64 bit con un intero a 32 bit?
uint64_t a = ...
uint32_t b = ...
Saranno a confronto gli interi danno i risultati attesi, vale a dire (a != b)
o (b > a)
?
Supponendo che ho 2 variabili:C++: è sicuro confrontare un intero a 64 bit con un intero a 32 bit?
uint64_t a = ...
uint32_t b = ...
Saranno a confronto gli interi danno i risultati attesi, vale a dire (a != b)
o (b > a)
?
Nessun problema. Il compilatore promuove il 32 a 64 bit prima del confronto
Risposta breve - sì. Il "più piccolo" viene convertito in uno più grande prima del confronto.
http://stackoverflow.com/questions/6770258/how-do-promotion-rules-work-when-the-signedness-on-side-of-a-binary-opera –