【问题标题】:Where should be parameters used for output located in the function parameters list函数参数列表中用于输出的参数应该在哪里
【发布时间】:2013-04-09 04:39:23
【问题描述】:

我正在尝试制定关于在我们的 C/C++ 代码中使用函数参数进行输出的政策。

我很清楚,策略应该表明所有用于输出的参数都应该在函数参数列表的末尾或开头组合在一起,但我不确定是否有充分的理由更喜欢其中任何一个地点。

你知道有什么理由更喜欢在开始或结束时对它们进行分组吗?

【问题讨论】:

  • 对于 C++,我认为最好尽量避免使用这些类型的输出参数。如果您需要返回多个值,您可以创建一个结构或元组并将其作为您的返回类型。

标签: c++ c coding-style


【解决方案1】:

只是我个人的看法,但如果它反映了复制或赋值语义,那么我更愿意将它们放在开头,就像 C 标准库中的字符串和某些 stdio 函数一样: p>

strcpy(dest, src);

看起来像

dest = src;

fgets(buf, sizeof(buf), file);

看起来像

buf = contents_of(file);

如果,然而,由于某种原因不是这样,然后我喜欢组织事物,让输入先出现,然后输出,然后我把输出参数列表末尾的参数。

【讨论】:

    【解决方案2】:

    让我再提一点:

    输入参数可以有默认值。要使用此功能,此(或这些)参数必须位于函数参数列表的末尾。
    因此,出于 user529758 已经说明的相同原因,我也开始将输出参数放在参数列表的开头。

    【讨论】:

      【解决方案3】:

      有两种思想流派,以 C 库中的不同函数为例:

      分配顺序

      memmove(target, source, size);
      

      先输入后输出

      sscanf(source, format, &out1, &out2, &out3);
      

      如果有多个输出,通常将它们放在最后。

      【讨论】:

        猜你喜欢
        • 2015-07-29
        • 1970-01-01
        • 1970-01-01
        • 2013-12-14
        • 1970-01-01
        • 2018-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多