6.62.15 Прагмы макросов Push/Pop ¶
Для совместимости с компиляторами Microsoft Windows, GCC поддерживает ‘#pragma push_macro("имя_макроса")’ и ‘#pragma pop_macro("имя_макроса")’.
#pragma push_macro("macro_name")-
Эта прагма сохраняет значение макроса с именем имя_макроса на вершине стека для данного макроса.
#pragma pop_macro("macro_name")-
Эта прагма устанавливает значение макроса с именем имя_макроса в значение на вершине стека для данного макроса. Если стек для имя_макроса пуст, значение макроса остаётся неизменным.
Например:
#define X 1
#pragma push_macro("X")
#undef X
#define X -1
#pragma pop_macro("X")
int x [X];
В этом примере определение X как 1 сохраняется с помощью #pragma
push_macro и восстанавливается с помощью #pragma pop_macro.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Push_002fPop-Macro-Pragmas.html