Я думаю, что это может означать неподписанное. Но что именно разница между:Что означает «U» в c означает среднее значение (например, #define FOO ((uint32_t) 1000U)))
#define FOO ((uint32_t)1000U))
и
#define FOO ((uint32_t)1000))
Я думаю, что это может означать неподписанное. Но что именно разница между:Что означает «U» в c означает среднее значение (например, #define FOO ((uint32_t) 1000U)))
#define FOO ((uint32_t)1000U))
и
#define FOO ((uint32_t)1000))
Согласно this table, это указывает на константу типа unsigned int
. То же объяснение можно найти here.
Почему есть актерский состав? – usr2564301
@RadLexus Рассмотрим случай, когда 'sizeof (без знака) == 2', без приведения к' uint32_t', FOO было бы всего 2 байта, что могло бы вызвать всевозможные тонкие ошибки (особенно на C++). Вообще говоря, 'U' является избыточным, если вы делаете актерский состав, но инверсия неверна. – mtijanic
Кажется, вам нужно больше узнать о целых литералах в C. Я также предлагаю посмотреть разницу между '0x1000u',' 1000u', '0100u'. – user3528438
Чтобы быть справедливым, если вы не знали, что искать «буквальный», пытающийся извлечь из этого поиска в Интернете, было бы ... интересным и, вероятно, не очень плодотворным. – jdv
@jdv Не так. Суффикса «u суффикса в Google» было бы достаточно. – matt