Gibt es eine Möglichkeit, Makros in C wiederherzustellen, so dass Sie ein neues Makro definieren können, unter welchem Namen wahrscheinlich andere Makros bereits definiert sind, und es mit dem vorherigen Wert neu definieren?Wiederherstellen von Definitionen und Makros
so dass Makros gelöscht werden und neu definiert werden, wenn neu definierte Makros in den vorherigen Zustand zurückgesetzt werden?
Beispiel:
// a macro parameter used in a library
#define size 10
#include <library/use_size.h>
//here the command/pragma to save the definitions
#define size (100/sizeof(size_t))
// some use of size ...
//here the command/pragma to reset the definitions
#include <library/allocator_with_size.h>
#undef size
// use size as a variable name
size_t size = 0;
//...
size += 123;
Edit: Ich möchte nicht #undef
verwenden, da es keine alten Makros nicht wiederherstellen. Auch wenn Sie viele Makros haben, zB um sie in einer X-Makro-Liste zu verwenden (in einem langen repetitiven Code/Deklaration von konstanten Arrays und Strukturen), sieht es hässlich aus, wenn es viele #undef
Direktiven gibt.
Wie wäre es mit '# undef? –
#undef size .... – OldProgrammer
Auch gibt es keinen "vorherigen Zustand" zu Makros. Sie sind entweder definiert oder nicht. –