Если бы я имел следующий код:Является ли объявление переменной имени в директиве #define четко определенной?
#include <stdio.h>
#define VAR_NAME a_variable
int VAR_NAME = 42;
int main()
{
printf("%i\n", VAR_NAME);
printf("%i\n", a_variable);
a_variable = 123;
printf("%i\n", VAR_NAME);
printf("%i\n", a_variable);
return 0;
}
хорошо определена декларация a_variable
? В моей системе объявлен номер int
, названный a_variable
, но мне нужно беспокоиться об альтернативных компиляторах, объявляющих int
с именем VAR_NAME
?
Кстати, приведенный выше код выводит следующее:
42
42
123
123
РЕДАКТИРОВАТЬ:
Кроме того, если предыдущее определение корректно, я мог сделать следующее?
#define VAR_NAME a_variable
...
#define DECL_VAR int VAR_NAME
// Declare an int named a_variable
DECL_VAR;