LINUX.ORG.RU

sizeof(winsize) или sizeof(struct winsize)

 , ,


0

2

myfile.c:

#include <asm/termios.h>
#include <stdio.h>

int main(int argc, char**argv) {
  printf(" :size %i)", sizeof(struct winsize));
}
Какая галочка в компиляторе может повлиять на на то, что без слова struct файл не компилируется gcc со словами error: ‘winsize’ undeclared (first use in this function)?

Код без слова struct сгенерировал мне cffi-grovel. Думаю, он что-то при этом имел в виду :)

★★★★★

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

Потому, что фактический размер переменной может быть больше, т.е. выравнен на 4/8/etc. байт - для упрощения последовательного доступа к элементам массива либо последующим данным, например.

А как же «When applied to an operand that has structure or union type, the result is the total number of bytes in such an object, including internal and trailing padding»?

i-rinat ★★★★★
()
Ответ на: комментарий от frame

Не получилось воспроизвести. pack(push,1) у меня в GCC на типы действует, а на переменные — нет.

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