将所有函数调用替换为 C/C++ 代码中的定义

replacing all function calls with their definition in a C/C++ code

本文关键字:代码 C++ 定义 函数调用 替换      更新时间:2023-10-16

我想知道是否有一些理论/工具可以将一段包含函数调用的代码替换为所有函数调用都被其各自的代码替换的代码。

喜欢

main()
{
   fun();
}
fun()
{
   int i;
   fun2();
}
fun2()
{
   int j;
}

main()
{
   int i;
   int j;
}

我知道有很多事情需要注意,比如局部变量名、递归调用、外部函数调用等。

我也知道它可能根本没有用,但这样的东西仍然存在吗? 甚至在理论上?

我应该称之为高级每处理器单元:)

编译器通常可以知道什么时候这样做是个好主意,并且已经在需要时自动执行内联。您还可以建议在函数之前使用 inline 关键字内联函数(请注意,它实际上仍然不会强制它,编译器可能会决定避免内联)。手动执行此操作通常不是一个好主意,因为现代编译器倾向于自己找出最好的内联。这篇文章很好地解释了内联函数,我发现它很有帮助

编辑 1:

有几个原因可以解释为什么人们可能想要做你所说的内联。如果你觉得你的代码被分成许多不同的函数,降低了它的清晰度,让它过于冗长,你可以尝试一个重构工具,比如VAssist X Visual Studio插件提供的那个。虽然这个插件并没有真正按照你的建议去做(我想不出一个工具可以做到),但它可以帮助轻松移动函数/方法,让你清理你的代码。