C++ 其中应为函数参数列表中的输出参数

C++ 其中应为函数参数列表中的输出参数,c++,c,coding-style,C++,C,Coding Style,我试图确定一个关于在C/C++代码中使用函数参数进行输出的策略 我很清楚,策略应该指出,用于输出的所有参数应该在函数参数列表的末尾或开头组合在一起,但我不确定是否有任何好的理由选择这两个位置 你知道有什么理由喜欢在开头或结尾对它们进行分组吗 有两种思想流派,以C库中的不同功能为例: 分配单 输入然后输出 如果有多个输出,通常将它们放在末尾。这只是我个人的观点,但是如果它反映了复制或赋值语义,那么我更喜欢将它们放在开头,就像C标准库中的字符串和某些stdio函数那样: strcpy(dest, s

我试图确定一个关于在C/C++代码中使用函数参数进行输出的策略

我很清楚,策略应该指出,用于输出的所有参数应该在函数参数列表的末尾或开头组合在一起,但我不确定是否有任何好的理由选择这两个位置


你知道有什么理由喜欢在开头或结尾对它们进行分组吗

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

分配单 输入然后输出
如果有多个输出,通常将它们放在末尾。

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

strcpy(dest, src);
看起来像

dest = src;
buf = contents_of(file);

看起来像

dest = src;
buf = contents_of(file);

但是,如果由于某种原因情况并非如此,那么我喜欢组织事情,使输入优先,然后输出,因此我将输出参数放在参数列表的末尾。

让我提到另一点:

输入参数可以有默认值。要使用此功能,此(或这些)参数必须位于函数参数列表的末尾。

因此,由于USER 529、75已经说明了同样的原因,我也开始在参数列表的开头输出参数。

C++,我认为最好避免完全避免这些类型的输出参数。如果需要返回多个值,可以创建一个结构或元组,并将其作为返回类型。
buf = contents_of(file);