我正在审查我们的 Visual C++ 代码库,看到许多主体非常短的辅助函数。像这样:
inline int max( int a, int b ) { return a > b ? a : b; }
问题是在 Visual Studio 调试器中调试代码时,无法在使用 F11(“进入”)进入函数时立即看到 a
和 b
是什么.只需按下 F11,“当前行”指针指向带有左大括号的行,然后在 F10(“跳过”)控制后退出该功能。这不是很方便。
另一种方法是重写所有这些函数,以便主体有效载荷占据单独的一行:
inline int max( int a, int b )
{
return a > b ? a : b;
}
现在,当按下 F11 时,“当前行”指针指向左大括号,然后在 F10 控制传递到有效载荷之后,可以看到值 a
和 b
有。如果一个人不关心并且只是在计算一些复杂的表达式时进入这个函数,他可以按 Shift-F11 并退出函数 - 但他也可以在前一种情况下这样做,所以没有重大的负面影响调试体验的变化。
这样的代码转换有什么弊端吗?有什么理由让函数体和函数签名在同一行?
最佳答案
两种格式化代码的方式在编译后的代码中没有区别。
选择更容易调试/维护/理解的东西。
在本例中,代码位于单独的一行。
关于c++ - 在单独的行上编写函数体会产生负面结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3625356/