У меня есть вопрос об использовании #undef
для переопределения макросов.
У меня есть файл global.h
, который содержит несколько макросов # define-d.В коде, использующем эти макросы, я обнаружил, что значения, которые содержат макросы, не являются достаточно общими.Я хочу переопределить макросы, чтобы сделать их более общими.Я написал следующий фрагмент кода, чтобы сделать это:
std::cout << endl << "Enter pitch threshold:" << endl;
std::cin >> pitchT;
#ifdef PitchThreshold
#undef PitchThreshold
#define PitchThreshold pitchT
#endif
Мои вопросы:
Обеспечивает ли использование #undef таким образом переопределение макроса для всех исходных файлов или оно локально дляфункция, где написаны строки кода выше?Какова область действия операторов #undef и #define?
Что я могу сделать (кроме изменения макросов в файле, где они сами являются # define-d), чтобы гарантировать, что определения макросов будут изменены во всех исходных файлах?
Спасибо,
Шрирам