在函数参数列表中应该有用于输出的参数
Where should be parameters used for output located in the function parameters list
我正试图决定在我们的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);
如果有多个输出,通常将它们放在最后。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 使用在用于SFINAE的void_t中具有参数的方法
- 用于检查值是否为其任何参数的帮助程序函数
- 为什么可变参数函数不适用于模板
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 一个模板方法,用于同时接受常量和非常量参数
- Constexpr 可变参数模板,用于对无符号整数进行重新排序
- 使用一个参数的模板函数时出错(适用于 2)
- 为什么模板参数推导不适用于仅指定前两个参数的可变参数模板类?
- 隐式生成的函数重载用于右值参数?
- 为什么带有类型参数的运算符 () 可以应用于 result_of 上下文中的类型?
- 将非 const 对象用于 const 参数
- 我可以将模板中的类型参数用于非类型参数吗?
- opencl openGL互操作内核参数用于读取 写入
- 分配参数用于测试目的
- 将命令行参数用于输入参数
- 如何使用类的属性作为模板参数/用于专用化
- 为什么我不能将此参数用于 std::sort() 的比较?
- 模板类参数用于模板类函数语法
- 为什么 GCC 不允许我将模板参数用于另一个模板的参数?