Я понятия не имею, выполнимо ли то, что я пытаюсь сделать.Я довольно новичок в C.
У меня есть структура, которая содержит указатель на другую структуру, которая содержит еще один указатель на другую структуру.Последняя структура содержит два указателя на структуры, называемые «leadToCw» и «leadToCcW».У меня также есть глобальная строковая переменная dir, которая может измениться с Cw на Ccw в любой момент времени.Это выглядит примерно так:
#define concat(a,b) a##b
String dir = "Ccw"; // or "Cw"
struct Intersection {
struct Sector *incoming;
}
struct Sector {
struct Sector *leadingToCcw;
struct Sector *leadingToCw;
};
Теперь, что я хочу, это вызвать LeadToCcw или LeadToCw в зависимости от строки "dir", так что вывод будет выглядеть следующим образом:
Intersection->incoming->leadingToCcw
Я пробовал что-то вроде этого:
Intersection->incomming->(dir == "Ccw" ? concat(leadingTo, Ccw) : concat(leadingTo, Cw))
но я получаю эту ошибку:
error: expected unqualified-id before '(' token
Я не знаю, стоит ли упоминать, но это для Arduinoпроект :-) Я надеюсь, что кто-то может мне помочь, или пнуть меня в задницу и сказать мне, что это невозможно!