
正文
c语言值返回主函数 c语言主函数返回值有什么用
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言怎么从子函数的子函数直接返回主函数
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数c语言值返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提c语言值返回主函数:
1)c语言值返回主函数你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
因此建议你的这个问题还是用C++ 的异常去解决比较好。
相关问答
Q1: c语言如何定义一个函数可以返回多个值回去给主函数呀。
函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。
可以考虑以下几个方法:
返回指针:
int* display() { int *p; p=malloc(sizeof(int)*6); ... return p; } //用p[0]~p[5]计算各位
void main() { int *p; p=display(); ... free(p); }
使用全局变量:将shiwa,wa,qiao,bai,shi,ge定义成全局变量,然后子程序和主程序直接用
使用函数参数:
void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge)
函数中用类似这样的用法计算:(*ge)=Data%10;
void main() { int shiwa,wa,qiao,bai,shi,ge; display(shiwa,wa,qiao,bai,shi,ge) }
用一个足够长的数返回:
long display() { long n; ... n=shiwa; n*=10; n+=wa; n*=10; n+=qiao; n*=10; n+=bai; n*=10; n+=shi; n*=10; n+=ge; return n; }
void main() { int wa; long n; n=display(); wa=n/10000; wa%=10; }
Q2: c语言如何在子函数中输入一个值返回主函数
子函数返回直接return就好c语言值返回主函数了嘛
int f(){
int a;
scanf("%d",a);
return a;
}
Q3: c语言中如何把一个子函数里的多个值返回到主函数中
定义三个变量。#includestdio.h
int main(void)
{
int a=3;
int b=5;
int c=0;
c=a;
a=b;
b=c;
printf("a=%d,b=%d",a,b);
getchar();
return 0;}
Q4: 在C语言中,主函数是不是必须要有返回值?
在C语言中c语言值返回主函数,主函数必须要有返回值。
main 函数c语言值返回主函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。
在C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)。
扩展资料:
在C和C++中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 或void main()。然而这是错误的。
main函数的返回值应该定义为int类型,虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main。g++3.2、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出警告。
关于c语言值返回主函数和c语言主函数返回值有什么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






