长函数调用的可读性

时间:2013-04-14 15:27:52

标签: c++ readability

我一直在编写使用函数调用的代码,这些函数调用非常长并且通常超过80个字符。通常我会将这些函数调用拆分为:

LongFunctionName(first_argument,
                 another_argument,
                 finally_last_argument);

但是,当我尝试将它放入if语句时,它看起来很奇怪,主要是因为它与它的比较变得不太清楚:

if(LongFunctionName(first_argument,
                    another_argument,
                    finally_last_argument) != value_compared_to)
{
    // stuff to be called
}

您如何将此语句格式化为更易读并且适合80个字符?

4 个答案:

答案 0 :(得分:8)

我会考虑将函数调用放在自己的行上:

const auto value = LongFunctionName(first_argument,
                              another_argument,
                              finally_last_argument);
if (value != value_compared_to) {
  // ...
}

您甚至可以为value变量提供一个很好的描述性名称,以帮助理解代码。

答案 1 :(得分:3)

将返回值存储在变量中是最好的解决方案。但你可以做点别的事情:

if (value_compared_to != LongFunctionName(first_argument,
                                          another_argument,
                                          finally_last_argument))

答案 2 :(得分:0)

您有两种选择:

1)

接受它看起来像这样

OR

2)

在单独的Statement(伪代码)

中评估函数调用的返回值
retval = LongFunctioName(first_argument, second_argument, third_argument);
if(retval != desired_val) { ... }

答案 3 :(得分:0)

不要让我们开始那个,我会做

if
(       LongFunctionName
        (       first_argument
        ,       another_argument
        ,       finally_last_argument
        ) != value_compared_to
)
{
        // stuff to be called
}