我试图决定关于我们的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);