LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

struct Coord {
    int x, y;
    struct mylist __list_link__;
};

Лучше поменяй местами данные и кишки списка, чтобы можно было без проблем кастовать указатель туда-обратно. Тогда вот этот треш не будет нужен.

#define MYLIST_GET_STRUCT(type, ptr) \
    ((type*)((size_t)(ptr) - ((size_t)(&((type*)0)->__list_link__))))

Исходная версия hateyoufeel, :

struct Coord {
    int x, y;
    struct mylist __list_link__;
};

Лучше поменяй местами данные и кишки списка, чтобы можно было без проблем кастовать указатель туда-обратно.