Вы говорите, что это C, который пропускает функции-члены (C не имеет функций-членов, классов и т. Д.). Это означает, что функция - это просто функция (не элемент чего-либо), и поэтому у вас есть только информация, которая передается, и глобальные переменные. Поскольку ни одна из этих вещей не содержит того, что вы хотите, вы не можете получить это.
Однако вы также говорите, что функция вызывается «некоторыми экземплярами структуры A». Это не имеет никакого смысла, потому что в структурах C нет функций-членов, и поэтому они не могут выполнять вызовы. Либо вы имеете в виду, что операции над некоторыми экземплярами структуры A вызывают funct (в этом случае применяется мой первый ответ), либо вы действительно работаете с C ++, и у вас есть функции-члены в структуре A.
Если funct является функцией-членом структуры A, то funct имеет полный доступ ко всем членам экземпляра A, вызвавшего его, и поэтому может напрямую проверять «имя». В противном случае мы вернемся к моему первому ответу.
Чтобы исправить это, вам либо понадобится функция, чтобы быть функцией-членом структуры A (тем самым перейдя к C ++), либо вам нужно будет передать соответствующую информацию в функцию.