我正在尝试决定一项关于在我们的 C/C++ 代码中使用函数参数进行输出的策略。
我很清楚,该策略应指示用于输出的所有参数应在函数参数列表的末尾或开头分组在一起,但我不确定是否有任何充分的理由偏爱这些位置中的任何一个。
你知道有什么理由更喜欢在开始或结束时对它们进行分组吗?
我正在尝试决定一项关于在我们的 C/C++ 代码中使用函数参数进行输出的策略。
我很清楚,该策略应指示用于输出的所有参数应在函数参数列表的末尾或开头分组在一起,但我不确定是否有任何充分的理由偏爱这些位置中的任何一个。
你知道有什么理由更喜欢在开始或结束时对它们进行分组吗?
只是我个人的看法,但如果它反映了复制或赋值语义,那么我更喜欢将它们放在开头,就像 C 标准库中的字符串和某些 stdio 函数一样:
strcpy(dest, src);
好像
dest = src;
和
fgets(buf, sizeof(buf), file);
好像
buf = contents_of(file);
但是,如果由于某种原因不是这种情况,那么我喜欢组织事物,使输入先出现,然后输出,所以我将输出参数放在参数列表的末尾。
我再提一点:
输入参数可以有默认值。要使用此功能,此(或这些)参数必须位于函数参数列表的末尾。
因此,出于 user529758 已经说明的相同原因,我也开始将输出参数放在参数列表的开头。
有两种思想流派,以 C 库中的不同函数为例:
memmove(target, source, size);
sscanf(source, format, &out1, &out2, &out3);
如果有多个输出,通常将它们放在最后。