> -- Илья Ермаков писал(а):
> Ну, Вы знакомы с List в Delphi (или в Яве до-дженериковой)?Вы делаете любую структуру данных, способную хранить ANYPTR (или Object, в терминах Delphi).И любой динамический объект может быть помещён в эту структуру данных (указатель на него).

В общем через pointer в паскале или void* в си. Я хотел более культурно сделать.

> -- Евгений Темиргалеев писал(а):
> В не зависимости от того, обобщённая реализация или нет, она должна быть. И Вы собираетесь её писать. Так?Тогда у меня к Вам просьба. Напишите реализацию например, списка, например для INTEGER; основные операции --- на Ваше усмотрение. И приведите нам здесь полный исходный текст реализации. На Си и на КП. Пожалуйста.

Я не совсем понял зачем Вам это? integer мне не нужен, мне нужно хранить структуры. И чем Вам не нравится реализация выше. Вот на си, на си была проба пера.

Банально, шлёпаем в начало списка.
## Код:
```
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

bool point_in_rect(int px, int py, int x, int y, int w, int h)
{
  if ((px >= x) && (py >= y) && (px <= x + w) && (py <= y + h))
  {
    return true;
  }
  else
  {
    return false;
  }
}

typedef struct _button_t button_t;

struct _button_t
{
  char * name;
  int pos_x;
  int pos_y;
  int size_w;
  int size_h;
  button_t * next;
};

button_t * table;
button_t * i;

button_t * button_new(char * name)
{
  button_t * p = (button_t*)malloc(sizeof(button_t));
  p->name   = strdup(name);
  p->next = table;
  table = p;
  return p;
}

button_t * button_find_pos(int x, int y)
{
  button_t * p = table;
  while (p != NULL)
  {
    if (point_in_rect(x, y, p->pos_x, p->pos_y, p->size_w, p->size_h) == true)
    {
      return p;
    }
    p = p->next;
  }
  return NULL;
}

int main(int argc, char **argv)
{
  button_new("1");
  button_new("2");
  button_new("3");
  button_new("4");
  button_new("5");
  
  i = table;
  
  while (i != NULL)
  {
    printf("%s\n", i->name);
    i = i->next;
  }
   return 0;
}
```


> -- Madzi писал(а):
> Вроде как на форуме уже была такая тема. С обобщёнными списками и т.п.

Да, то самое. Спасибо мне нужен был пример реализации.


Всём. Товарищи форумчани, тема не с++ vs кп. Я хотел узнать как на кп, борются с лишним кодом. Возможно ли для этого, заюзать расширенные записи.