mio gcc
compilatore mi permette di definire un lungo (vale a dire a 64-bit) unsigned long letteraletipi letterali: 0x1ull vs 0x1llu
#define A_LITERAL 0x1ull
--- --- o
#define A_LITERAL 0x1llu
Is c'è qualche differenza tra queste due affermazioni letterali. È comune ad altri compilatori C?
Ho votato perché mi ha insegnato qualcosa. Ho già _knew_ entrambi i form erano validi ma preferivano 'ULL' perché corrispondeva al tipo' unsigned long long'. Tuttavia, risulta che i tipi sono piuttosto fluidi, consentendo una tale "stranezza" come "long unsigned long": vedi http://stackoverflow.com/questions/17287957/is-long-unsigned-as-valid-as- unsigned-long-in-c – paxdiablo