Salve a tutti. Ottengo una warning quando eseguo questa porzione di codice:
unsigned long int Ciao= 1;
Ciao= Ciao >> 48;
Warning: Shift count is too large in "main.cpp", Line: 627, Col: 52
Non capisco perché accada. Come devo risolvere?
Salve a tutti. Ottengo una warning quando eseguo questa porzione di codice:
unsigned long int Ciao= 1;
Ciao= Ciao >> 48;
Warning: Shift count is too large in "main.cpp", Line: 627, Col: 52
Non capisco perché accada. Come devo risolvere?
Chiarito. Il compilatore che sto usando lo pensa come 4 byte.
Sì è normale; su Windows i long sono a 32 bit (anche con il compilatore a 64 bit), a differenza di Linux, dove long è a 64 bit (con il compilatore a 64 bit). In generale comunque se ti serve un tipo con una dimensione ben definita usa i tipi da stdint.h (ad esempio, un intero senza segno a 64 bit è uint64_t).
Amaro C++, il gusto pieno dell'undefined behavior.