[email protected] writes: > On Tue, 7 Oct 2014, Dmitrii Kashin wrote: > >> >> Как бы это сказать помягче, что я в очередной раз удивился, потратил >> время, открыл книжку, перечитал, и снова ничего не нашёл? >> >> > > For example, given the declaration of point above, > struct point pt; > defines a variable pt which is a structure of type struct point. > > А более подробное обсуждение, что такое declaration > содержится в 2.4. > > Или я не понял вопроса. Что именно вы хотели найти?
Да, пожалуй.
Фишка в том, что можно написать в заголовке:
---------- point.h ----------
struct point;
struct point* point_constructor();
int point2number(struct point* p);
-----------------------------
В коде библиотеке вот можно написать вот так:
---------- point.c ----------
struct point
{
int x;
int y;
};
struct point*
point_constructor()
{
struct point* p_ptr = malloc(sizeof(struct point));
p_ptr->x = 1;
p_ptr->y = 1;
return p_ptr;
};
int
point2number(struct point* p)
{
return (p->x + p->y);
};
-----------------------------
После чего в какой-то другой программе воспользоваться этим как-то так:
---------- program.c ----------
include "point.h"
int
main(int argc, char* argvp[])
{
struct point* PVAR;
return point2number(PVAR);
};
-------------------------------
И оно будет работать.
Я не проверил этот код, а просто наскоро написал его в
редакторе. Смею надеяться, общую суть я передал.
pgp5CwpdUxpgu.pgp
Description: PGP signature

