Преобразовать строку в идентификатор имени
Возможно ли "дестрификация" в C89 так же, как возможна строковая обработка?
2 ответа
Имена переменных переводятся в имена символов во время компиляции. Предполагается, что эти символы недоступны изнутри программы, и их имена часто искажаются, но в любом случае C не предоставляет способ доступа к своей собственной среде выполнения изнутри. Этот тип функции в языке программирования называется "отражением", и если вы полагаетесь на его существование для своего проекта, вам следует поискать язык с его поддержкой или, как я предположил бы, использовать своего рода 2D-карту или словарь, который это структуры данных, в которых каждый объект связан с уникальным ключом, часто строкой, что упрощает его поиск в том виде, в котором он вам нужен.
Я думаю, что вы имеете в виду макрос DESTRINGIFY("привет"), который должен быть расширен до "привет". В этом случае НЕТ, это невозможно в C89, а также в более поздних стандартах.