函数proto类型,如int xxxx(int)或void xxx(int)
答案 0 :(得分:5)
你可以使用全局变量(或者, little 更好,你可以使用在文件范围内声明的静态变量),或者你可以改变你的函数来采取一个输出参数,但最终你应该使用return
语句,因为它确实是它的用途。
答案 1 :(得分:4)
从C中的函数返回值的两种标准方法是使用return
语句显式执行,或使用指针参数并在指针处指定对象。
还有其他方法,但我不会因为害怕增加世界上邪恶代码的数量而进入它们。你应该使用其中一个。
答案 2 :(得分:2)
使用传递参考:
void foo(int* x, int* y) {
int temp;
temp = *x;
x* = *y;
y* = temp;
}
void main(void) {
int x = 2, y=4;
foo(&x, &y);
printf("Swapped Nums: %d , %d",x,y);
}
答案 3 :(得分:1)
它还取决于您正在使用的编程语言。
编辑:抱歉,我没有看到C标签,所以请忽略我的上一个声明答案 4 :(得分:1)
通常,您为函数提供外部变量的引用。
void foo(int *value)
{
*value = 123;
}
int main(void)
{
int my_return_value = 0;
foo(&my_return_value);
printf("Value returned from foo is %d", my_return_value);
return 0;
}
答案 5 :(得分:0)
简单的答案给出了一个原型,就像第一个你必须使用return语句的原型,因为int返回值指示它。
原则上可以做一些可怕的事情,例如将指针转换为int并将其作为参数传递,将其强制转换并修改它。正如其他人提到的那样,你必须确保你理解这样做的所有含义,并根据你的问题来判断你不会这样做。
答案 6 :(得分:0)
int wel();
int main()
{
int x;
x = wel();
的printf( “%d \ n” 个中,x);
返回0;
}
int wel()
{
注册int tvr asm(“ax”);
tvr = 77;
}
在ubuntu机器上用GCC编译器编译。在borland编译器中,返回的方式不同。
答案 7 :(得分:0)
如果需要返回多个值,为什么不使用指向新分配结构的指针?
typedef struct { int a, char b } mystruct;
mystruct * foo()
{
mystruct * s = (mystruct *) malloc(sizeof(mystruct));
return s;
}
未经测试,但应该有效。