В чем разница между идентификатором и макросом? - PullRequest
0 голосов
/ 28 июня 2018

Когда мы пишем директиву препроцессора, такую ​​как:

#define PI 3.1416    
// Is PI is a macro or an identifier and how do we distinguish
// one from another?

1 Ответ

0 голосов
/ 28 июня 2018

В вашем примере PI - это и макрос, и идентификатор. «Идентификатор» - это грубо говоря формальный термин для синтаксиса, который определяет имя. Макросы, функции, пространства имен, типы, переменные имеют имена, и все эти имена указываются с использованием идентификаторов. Из контекста должно быть ясно, подразумевается ли PI как макрос или как идентификатор:

Вышеуказанное определяет PI как 3.1416.

Здесь он используется для обозначения макроса.

PI после #define указывает имя макроса.

Здесь он используется для ссылки на идентификатор: он используется для ссылки на два символа в исходном коде, которые определяют имя макроса.

...