Ich habe eine Frage zur Verwendung von #undef
um Makros umzudefinieren.
Ich habe eine Datei global.h
die eine Reihe von #define-d-Makros enthält. In dem Code, der diese Makros verwendet, finde ich, dass die Werte, die die Makros enthalten, nicht allgemein genug sind. Ich möchte die Makros umdefinieren, um sie allgemeiner zu machen. Zu diesem Zweck habe ich den folgenden Codeschnipsel geschrieben:
std::cout << endl << "Enter pitch threshold:" << endl;
std::cin >> pitchT;
#ifdef PitchThreshold
#undef PitchThreshold
#define PitchThreshold pitchT
#endif
Meine Fragen sind:
Stellt die Verwendung von #undef auf diese Weise sicher, dass das Makro in allen Quelldateien neu definiert wird, oder gilt dies nur für die Funktion, in der die oben genannten Codezeilen geschrieben werden? Was ist der Anwendungsbereich der #undef- und #define-Operatoren?
Was kann ich tun (abgesehen von der Änderung der Makros in der Datei, in der sie #define-d selbst sind), um sicherzustellen, dass die Makrodefinitionen in allen Quelldateien geändert werden?
Danke,
Sriram