Я запутался в типе целочисленной константы, как описано здесь :
В первой строке, если константа заканчивается без 'u'
, почему десятичная константа должна быть *Тип 1006 *, в то время как восьмеричная или шестнадцатеричная константа может иметь тип unsigned
?
Я думаю, что при выборе константы в качестве неподписанной версии, если версия signed
не подходит, возникают проблемы, например:
long long l1 = 0xffffffff + 0xffffffff; // 0xffffffff is unsigned int
long long l2 = 4294967295 + 4294967295; // 4294967295 is signed long
l1 - это fffffffe, а l2 - 1fffffffe.и, очевидно, l1 не так