对于我正在编写的课程项目,我的老师的功能样式指南说“输入参数必须出现在输出参数之前”。我不太清楚他们的意思是什么?
答案 0 :(得分:4)
如果我有一个功能
void foo(int a, int b, int* c)
{
*c = a+b;
}
在上述情况下,a和b是输入,而c是输出。
通常,如果要返回数组,则以这种方式使用“输出”。
答案 1 :(得分:1)
C实际上没有"输入"和"输出"参数,至少不是直接的。 (有些语言可以。)所有参数都是按值传递的,这意味着函数获取参数的值,但对参数的任何修改对调用者都是不可见的。
(术语:A *参数"是函数体中的命名对象,在括号之间定义; 参数是函数调用中的表达式。每个参数都被计算并且结果值将分配给相应的参数。)
但是,您可以模拟"输出"使用指针的参数。例如:
void foo(int in, int *out);
指针按值传递,但该函数可以通过指定值{em>指向*out
的指针,该指针对调用者可见。 (out
也可以用作输入参数,这对于传递指针更有效的大型类型或输入/输出参数是常见的。)
所以"输入参数必须出现在输出参数之外"可能意味着非指针参数应该出现在用于间接返回值的指针参数之前。
答案 2 :(得分:1)
对于void
函数,这通常是 。
void some_function (int input_1, int input_2, char* output)
{
/* Do things with input_1 and input_2. */
/* Modify "output". */
}
我刚给出的代码非常模糊,void函数中的输入/输出参数可以多种方式应用。