LINUX.ORG.RU
Ответ на: комментарий от quest

в крестах стандарт другой, там прописано что размер пустой структуры 1 байт. вроде писали уже про это выше.

waker ★★★★★
()
Ответ на: комментарий от KRoN73

When applied to an operand that has type char , unsigned char , or signed char , (or a qualified version thereof) the result is 1.

Это из ANSI C. Стандартов старше 1990 года я уже не держу под рукой :).

rymis ★★
()
Ответ на: комментарий от anonymous

а кто сказал, что код в моем софте где-то использует sizeof от пустых структур? я просто продемонстрировал, что многоуважаемый Крон ошибся, и таки sizeof вполне себе возвращает 0. какая разница, UB или нет?

waker ★★★★★
()
Ответ на: комментарий от waker

Я рассматриваю это как если бы кто-то написал

printf("%d\n", 1/0);
, получил на выходе 7 и спрашивал бы: «Т.е. ты отвергаешь то, что 1/0 == 7?».

anonymous
()
Ответ на: комментарий от anonymous

Я рассматриваю это как если бы кто-то написал

проще надо быть.

waker ★★★★★
()
Ответ на: комментарий от anonymous

Советую прочитать тред по ссылке.

читать тред лень. как и спорить с тобой о такой ерунде, как неполное соблюдение стандартов чуть более чем всеми компиляторами. (и кстати, struct {} это не UB, это с т.з. стандарта неправильный синтаксис)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от waker

и кстати, struct {} это не UB, это с т.з. стандарта неправильный синтаксис

The struct-declaration-list is a sequence of declarations for the members of the structure or union. If the struct-declaration-list contains no named members, the behavior is undefined.

anonymous
()

А как ещё назвать 32-х битный тип?

anonymous
()
Ответ на: комментарий от anonymous

из стандарта c99:

6.2.6.1 Except for bit-fields, objects are composed of contiguous sequences of one or more bytes, the number, order, and encoding of which are either explicitly specified or implementation-defined.

one or more

waker ★★★★★
()
Ответ на: комментарий от reprimand

зип

???

Аббревиатура такая совковая - Запчасти и принадлежности.

RiseOfDeath ★★★★
()
Ответ на: комментарий от waker

из стандарта c99:

Это не отменяет того факта, что пустая структура - это не ошибка, а именно UB, согласно тому же c99. А в случае UB можно получать результат, который не вписывается в рамки стандарта.

anonymous
()
Ответ на: комментарий от anonymous

почему же UB, если в стандарте вполне себе написано, что в структуре должно быть 1 или более поле? разве это не подразумевает, что 0 полей синтаксическая ошибка?

waker ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.