[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Чёртов язык Си!



Dmitrii Kashin -> debian-russian@lists.debian.org  @ Tue, 07 Oct 2014 10:23:55 +0400:

 >>  DK> Оказывается, можно объявлять структуры, не объявляя их поля. Я в
 >>  DK> шоке. Оказывается, заголовки можно писать вот так:
 >>
 >>  DK> ---------- my-objects.h ----------
 >>  >> struct my_object;
 >>  >> struct my_object * my_object_create();
 >>  >> int my_object_do_something(struct my_object * object); 
 >>  DK> ----------------------------------
 >>
 >>  ...
 >>  DK> [1] http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Defining-Structures
 >>
 >> Это довольно логично, поскольку в приведенном примере структура не
 >> _определяется_.  Она _объявляется_.
 >>
 >> http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Incomplete-Types

 DK> Спасибо, Артём. Не дочитал, поторопился. =(

 DK> Кстати, здесь что-то непонятное с терминологией: "You can *define*
 DK> structures, unions, and enumerations without listing their members"
 DK> Я ведь правильно понимаю, что "define" - это "определять", а "объявлять" -
 DK> это "declare"? Или переводить такие слова надо как-то аккуратнее?

Да, у них там недоработка.

Но вообще надо понимать, что нет такого языка "GNU C", поэтому
gnu-c-manual не может быть руководством по языку :)

Обсуждаемая особенность была в языке C с самого начала, ее можно еще у
Кернигана и Ричи вычитать.  Хотя в наше время по Кернигану и Ричи учить
C уже не очень хорошо, уж очень там много давно снятых ограничений.


Reply to: