Не уверен, есть ли у кого-то опыт поддержки старых кодов.В некоторых старых кодах у меня есть глобальная переменная, на которую ссылаются во многих местах.Я хочу заменить все эти ссылки на мою глобальную переменную на что-то другое, например, на вызов функции.Могу ли я сделать это простым #define в каждом исходном файле?например,
#define legacyGlobalVariable func1("legacyGlobalVariable")
My func1 () примет имя старой переменной и вернет что-то такое же, как у legacyGlobalVariable .
Iзнаю, что #define может заменить legacyGlobalVariable , который формирует токен.Но я не уверен, есть ли какие-то особые случаи, с которыми эта простая техника не может справиться.Например, я знаю, что мне нужно предотвратить это:
legacyGlobalVariable(23);// a badly named function same name as my global var
становится
func1("legacyGlobalVariable")(23);//but at least, it cannot compile
Есть ли другие возможные проблемы с этой простой техникой?Кто-нибудь когда-нибудь пытался его использовать?Я знаю, что для проверки всех возможных случаев действительно требуется знакомство с C ++, которое на данный момент мне не под силу.