Makros ausschalten

Eine Frage zu Makros:

Ich habe in einem Projekt aus mehreren Quellcodedateien in einer Datei ein störendes Makro aus einer Bibliotheksdatei mit
#undef ProblematischesMakro
ausgeschaltet. Ist dieses Makro dann nur für den Quelltext dieser einen Datei undefiniert, oder setze ich es damit für das komplette Programm außer Funktion ?

Hallo ???

Ich habe in einem Projekt aus mehreren Quellcodedateien in
einer Datei ein störendes Makro aus einer Bibliotheksdatei mit
#undef ProblematischesMakro
ausgeschaltet. Ist dieses Makro dann nur für den Quelltext
dieser einen Datei undefiniert, oder setze ich es damit für
das komplette Programm außer Funktion ?

Das Makro „ProblematischesMakro“ ist ab der Stelle an welcher
#undef ProblematischesMakro
bis zu derjenigen Stelle an welcher das Macro „ProblematischesMakro“ evtl. wieder neu definiert wird ausgeschaltet.
Du musst natürlich aufpassen, dass nicht irgenwo mit #include das Macro wieder definiert wird.

Beispiel:
#define Macro(a,b) ((a)+(b))

void f1(void)
{
int i;

i = X(1,2); // i = 1 + 2
}

#undef X

void f1(void)
{
int i;

i = X(1,2); // Fehlermeldung: X ist unbekannt

#define Macro(a,b) ((a)-(b))

void f3(void)
{
int i;

i = X(1,2); // i = 1 - 2
}

MfG Peter(TOO)