函数原型类型如int XXXX(INT)或无效XXX(INT)如何在不使用return语句的情况下将值返回给调用函数?
回答
您可以使用全局变量(或者,一个一点更好,你可以使用在文件范围内声明的静态变量) ,或者你可以改变你的函数来获取一个输出参数,但最终你只需要使用return
声明,因为这真的是它的用途。
- 您可能有一个全局变量,您可以将值分配给。
- 您可以传递一个存储整数的对象,并且如果您在函数中更改它,它也会在其他地方更改,因为对象不是值类型。
它还取决于您正在使用的编程语言。
编辑:对不起,我没有看到C标记,所以忽略我的最后一句话
这个问题被标记为C. – dreamlax 2010-11-18 10:31:52
一个更合理的编辑应该是简单地删除你的最后一个陈述,不是吗? – 2010-11-18 10:34:23
我们可以在不使用全局变量的情况下在Borland C编译器中执行... – Muthuraman 2010-11-18 10:36:25
两个标准方法的返回值进行的C函数是要么做明确与return
声明,或使用指针参数并将其分配给指针处的对象。
还有其他的方法,但我不会因为害怕增加世界上的邪恶代码量而进入他们的行列。你应该使用其中的一个。
使用通过引用传递:
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);
}
通过将整数转换为指针(实现定义的行为),然后将这些指针变量(指向int的指针)的地址提供给期望指向两个参数的int的函数,从而初始化x和y。 – dreamlax 2010-11-18 10:35:11
*叹*。这是对如何搞砸C的一种测量,即手动将指针传递到C的仅复制参数mechanisim被视为“通过引用传递”。第二种方法是,你在示例中的第一个错误是错误的,导致谁知道在运行时会发生什么。 **这个答案是* Exhibit A *为什么C应该尽可能避免** – 2010-11-18 10:36:07
我应该是这样的:int x = 2,y = 4; – 2010-11-18 10:37:42
通常您提供参考外部变量的函数。
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;
}
我不需要这种情况。试用Borland C编译器.... – Muthuraman 2010-11-18 10:38:06
@Muthuraman - 我不确定你在说什么,但是这对我来说看起来很基本。它应该可以在你的Borland C编译器上正常工作。 – 2010-11-18 10:45:49
如何用其他语句代替返回0;在你的代码 – Muthuraman 2010-11-18 11:20:02
简单的答案就像第一个原型一样,您必须使用return语句作为int返回值指示它。
原则上可以做一些可怕的事情,比如将一个指针指向一个int并将其作为参数传递,然后将其转换回来并对其进行修改。正如其他人所暗示的,你必须确保你理解这样做的所有含义,并根据你的问题来判断,我会说你不这样做。
int wel();
int main()
{
int x;
x = wel();
printf(“%d \ n”,x);
return 0;
}
INT WEL()
{
寄存器INT TVR的asm( “AX”);
tvr = 77;
}
在ubuntu机器上用GCC编译器编译。在Borland编译器中,返回的方式不同。
这里我没有使用return语句。 – Muthuraman 2010-11-18 11:35:16
为什么,哦,为什么,你想这样做?完全没有目的,不是标准C(甚至C,因为它取决于汇编程序),完全不可移植。 – Arkku 2010-11-18 11:36:10
(哲学上也有人可能认为寄存器是一个全局变量。=) – Arkku 2010-11-18 11:42:00
如果您需要返回多个值,为什么不使用指向新分配结构的指针?
typedef struct { int a, char b } mystruct;
mystruct * foo()
{
mystruct * s = (mystruct *) malloc(sizeof(mystruct));
return s;
}
未经测试,但应该有效。
- 1. 在不存储返回值的情况下调用函数
- 2. javascript函数在没有return语句的情况下返回什么?
- 3. 如何在不覆盖父函数的情况下将值返回给超类?
- 4. 如何在不调用方法的情况下在If语句中使用布尔值返回值
- 5. 如何在不返回值的情况下退出函数
- 6. 函数返回的std :: string崩溃没有return语句,不像它返回int的函数没有return语句
- 7. 如何将回调函数的值返回给调用者?
- 8. 简单的Python函数返回无,我使用return语句
- 9. 如何在不重复函数调用或污染全局作用域的情况下从函数返回值?
- 10. 如何在不使用多个返回的情况下返回值
- 11. 如何在不使用if语句的情况下重写?
- 12. 如何在不使用union的情况下编写Sql语句?
- 13. 未定义的返回值。在这种情况下如何使用回调?
- 14. 的WordPress,cmb2:在写情况下不能使用函数的返回值
- 15. 致命错误:在写情况下不能使用函数的返回值
- 16. 三元功能 - 在写情况下不能使用函数的返回值
- 17. 在没有显式返回语句的情况下返回一个值
- 18. C如何在不带参数的情况下调用函数?
- 19. 如何使用的情况下用select语句在SQL Server 2000
- 20. 如何使用Fetch API将数据返回给调用函数?
- 21. 返回语句不返回控制给调用者在java
- 22. 如何将mongoose findOne方法的值返回给调用函数
- 23. JavaScript回调函数在我的情况下不起作用
- 24. 如何在不使用Response.Redirect的情况下“返回”
- 25. 在Python中,如何在不使用全局变量的情况下在第二个函数中使用函数的return语句?
- 26. 函数返回值无返回语句
- 27. 使用return语句的Python调用函数
- 28. 如何在不等待的情况下调用异步函数?
- 29. Jquery:将ajax调用的值返回给调用者函数?
- 30. 在不使用eval的情况下调用函数?
为什么你不能只使用'return'? – dreamlax 2010-11-18 10:28:13
这需要扩展。 return语句_is_用于从函数返回值。你究竟想要做什么? – 2010-11-18 10:28:38
这个问题真的有点混乱。您可以使用全局变量,但它不同于“函数返回值”。 – khachik 2010-11-18 10:30:14