应该在函数参数列表中使用的输出参数应该放在哪里

时间:2013-04-09 04:39:24

标签: c++ c coding-style

我正在尝试在C / C ++代码中决定有关输出函数参数的使用政策。

我很清楚,该策略应该指出用于输出的所有参数应该在函数参数列表的结尾或开头组合在一起,但我不确定是否有任何理由更喜欢这些参数中的任何一个位置。

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

3 个答案:

答案 0 :(得分:4)

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

strcpy(dest, src);

看起来像

dest = src;

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

看起来像

buf = contents_of(file);

如果,但由于某些原因情况不是这样,那么我喜欢组织一些事情,以便先输入,然后输出,然后我输出输出参数列表末尾的参数。

答案 1 :(得分:3)

让我提一点:

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

答案 2 :(得分:2)

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

分配顺序

memmove(target, source, size);

输入然后输出

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

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