2016-03-23 3 views
2

Я думаю, что это может означать неподписанное. Но что именно разница между:Что означает «U» в c означает среднее значение (например, #define FOO ((uint32_t) 1000U)))

#define FOO ((uint32_t)1000U)) 

и

#define FOO ((uint32_t)1000)) 
+0

Кажется, вам нужно больше узнать о целых литералах в C. Я также предлагаю посмотреть разницу между '0x1000u',' 1000u', '0100u'. – user3528438

+1

Чтобы быть справедливым, если вы не знали, что искать «буквальный», пытающийся извлечь из этого поиска в Интернете, было бы ... интересным и, вероятно, не очень плодотворным. – jdv

+0

@jdv Не так. Суффикса «u суффикса в Google» было бы достаточно. – matt

ответ

0

Согласно this table, это указывает на константу типа unsigned int. То же объяснение можно найти here.

+1

Почему есть актерский состав? – usr2564301

+0

@RadLexus Рассмотрим случай, когда 'sizeof (без знака) == 2', без приведения к' uint32_t', FOO было бы всего 2 байта, что могло бы вызвать всевозможные тонкие ошибки (особенно на C++). Вообще говоря, 'U' является избыточным, если вы делаете актерский состав, но инверсия неверна. – mtijanic

Смежные вопросы