Цепочка методов в C

Возможно ли в C сделать цепочку методов следующим образом:

// is this the closest to item.find('path').find('subpath') ?
item -> find('path') -> find('subpath')

Или такая конструкция невозможна? Если это возможно (или его вариант), какой может быть самый простой пример?

// like an XML hierarchical path
typedef struct Item {
    char *path;
    find (??)
} Path;

person samuelbrody1249    schedule 10.12.2020    source источник
comment
C не имеет методов. Вы уверены, что не имеете в виду С++?   -  person Barmar    schedule 10.12.2020
comment
@Barmar Бармар, да, я никогда не писал на С++ - я имею в виду функции C.   -  person samuelbrody1249    schedule 10.12.2020
comment
Вы можете помещать указатели функций в структуры. struct Item* (*find)(char *);   -  person Barmar    schedule 10.12.2020
comment
Но, в отличие от методов, функция не получает автоматически объект, указывающий на нее, в качестве аргумента. Таким образом, он не может узнать, какой Item вы ищете.   -  person Barmar    schedule 10.12.2020
comment
Буквально структура указателей функций на самом деле не позволяет связывать несколько указателей функций-членов как a->func1()->func2() без дальнейшего скопления функции, возвращающей указатель на структуру этого типа, которая затем будет дополнительно связана. Вы можете использовать доступ к одному члену с -> , но несколько раз терпят неудачу, потому что, например. a->func1() не имеет участника с именем func2(). C не имеет встроенного синтаксиса для объединения функций с ->.   -  person David C. Rankin    schedule 10.12.2020