Нет, первый макрос будет определен только один раз.Когда вы пишете
#define Symbol SymbolResolution
, препроцессор заменит Symbol
на SymbolResolution
везде, где он видит Symbol
.Если SymbolResolution
является #define
или содержит некоторые символы, которые имеют #define
внутри, то же самое произойдет с ними - все они будут заменены.Это будет происходить до тех пор, пока во всем блоке перевода не будет символов с #define
s.
Таким образом, вы можете ссылаться на макросы из других макросов по своему желанию.Однако вы не можете ссылаться на макросы рекурсивно.Вы также должны быть осторожны с этим - это может легко привести к множеству едва читаемого и очень трудного для отладки кода, если вы неправильно используете макросы.