Как использовать define константы при конкатенации?
Пусть имеется код:
#define N n
#define DECODE(q,w,e,r) q ## w ## e ## r
#define START DECODE(m,a,i,N)
Тогда при конкатенации получится START = maiN. У меня два вопроса:
1) Почему подставляется имя константы N, а не её значение (n)?
2) Можно ли использовать define-константы при конкатенации в участке кода, как на примере выше? Чтобы получилось START = main.
Работаю в VS 2013.
Прошу если не ответить на вопрос прямо, то хотя бы ткнуть мордой в нужную литературу, чтобы почитать.
Спасибо
И макросы используются для простых замен, когда нужно, например, вставить кусок кода в нескольких местах, но на функцию он не тянет. Именно так их и нужно рассматривать - в качестве автоматизированной вставки, не более.