Я понимаю, препроцессор #define
заменяет идентификатор с замена
#define <identifier> <replacement>
Предположим, у нас есть следующее:
#define SLOT(a) "1"#a
void myValue(int value);
SLOT(myValue(int));
Я это понимаю #
средства взять строковый литерал. Таким образом, после макроса, мы бы не
"1""myValue(int)"
… по существу два строковых литерала спина к спине. Я предполагаю, что препроцессор автоматически объединяет два строковых литерала вплотную. Это правда? Где я могу найти информацию по этому факту?
Да, ваше понимание верно.
#
оператор является оператором stringizer.