При работе с макросами, вероятно, наиболее важной концепцией для получения прав является выполнение во время компиляции в сравнении с выполнением во время выполнения.
Макросы выполняются во время компиляции как интерпретируемый язык компилятором.Весь другой код выполняется при запуске сгенерированного двоичного файла.
Поэтому макросы не могут получить доступ к каким-либо данным времени выполнения, таким как параметры определения обычного метода.Вы можете перейти от макроса к среде выполнения, сгенерировав код, который помещает данные туда, где среда выполнения ожидает их, например, к определенной переменной.Но очевидно, что вы не можете пойти другим путем.
Так что, как правило, вы можете передавать данные из макроса в метод, но не наоборот.