Си: как правильно говорить поле структуры или элемент структуры?

В русскоязычной литературе очень часто встречается "поле структуры". В K&R в оригинале написано "member", в русском переводе - "поле". Но ведь "поле" - это "field". Однажды задавал вопрос на англоязычном stackoverflow, написал "field" - меня поправили. Получается, что авторы многих наших книг ошибаются?


Ответы (2 шт):

Автор решения: nikiquark

Поле это устоявшийся термин в программировании. В англоязычной литературе также можно встретить class field. class member это более широкий термин, включающий в себя поля, методы и всё, что относится к классу(структуре). Учитывая, что в C у структур нет методов, то термины field и member равнозначны.

→ Ссылка
Автор решения: αλεχολυτ

В стандарте языка C (текущий от 2018 года) слово "field" упоминается только в двух контекстах:

  • для битовых полей (bit-field);
  • при задании ширины форматированного ввода/вывода (field width).

Единственным правильным (оригинальным термином) для членов структуры является "member". В частности можно встретить такие упоминания:

  • 1023 members in a single structure or union // 5.2.4.1 Translation limits

  • struct {
       char a;
       int b:5, c:11,:0, d:8;
       struct {int ee:8;} e;
    }
    

    The member a, and bit-fields d and e.ee are each separate memory locations

  • An identifer can denote an object; a function; a tag or a member of a structure, union, or enumeration ... // 6.2.1 Scopes of identifers

Ну и основное это, наверное, вот:

  • A structure type describes a sequentially allocated non empty set of member objects (and, in certain circumstances, an incomplet earray), each of which has an optionally specifed name // 6.2.5 Types p.20 andpossiblydistincttype.
→ Ссылка