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)