在函数参数列表中应该有用于输出的参数

Where should be parameters used for output located in the function parameters list

本文关键字:参数 用于 输出 函数 列表      更新时间:2023-10-16

我正试图决定在我们的C/c++代码中使用函数参数作为输出的策略。

我很清楚,策略应该表明用于输出的所有参数应该在函数参数列表的末尾或开始分组在一起,但我不确定是否有任何好的理由更喜欢这两个位置。

你知道有什么理由喜欢在开头或结尾分组吗?

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

strcpy(dest, src);

的样子

dest = src;

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

的样子

buf = contents_of(file);

如果,然而,由于某些原因不是这种情况,那么我喜欢组织事情,以便输入先出现,然后输出,因此我将输出参数放在参数列表的末尾。

让我再提一点:

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

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

<<h3>任务顺序/h3>
memmove(target, source, size);

输入输出

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

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