gpt4 book ai didi

c++ - 用 C++ #define 替换对变量的所有引用

转载 作者:行者123 更新时间:2023-11-30 01:29:09 24 4
gpt4 key购买 nike

不确定是否有人有维护旧代码的经验。在一些旧代码中,我在很多地方引用了一个全局变量。我想将所有对我的全局变量的引用替换为其他内容,比如函数调用。我可以在每个源文件中通过一个简单的#define 来实现吗?例如

#define legacyGlobalVariable func1("legacyGlobalVariable")

我的 func1() 将接受旧变量的名称并返回与 legacyGlobalVariable 相同类型的内容。

我知道#define 可以替换构成标记的legacyGlobalVariable。但我不确定是否存在这种简单技术无法处理的特殊情况。例如,我知道我需要防止这种情况发生:

legacyGlobalVariable(23);// a badly named function same name as my global var

成为

func1("legacyGlobalVariable")(23);//but at least, it cannot compile

这个简单的技术还有其他可能的问题吗?有没有人尝试过使用它?我知道要验证所有可能的情况确实需要熟悉 C++,这暂时超出了我的掌握范围。

最佳答案

它的主要问题是 #define is evil .这不会提高代码的可读性,所以我建议您硬着头皮改用编辑器的查找/替换功能。

关于c++ - 用 C++ #define 替换对变量的所有引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com