LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 751|回复: 6

请教:编译中出现要求返回一个值得错误

[复制链接]
发表于 2004-6-15 17:03:45 | 显示全部楼层 |阅读模式
操作系统为linux7。0,定义了一个函数void sincatcher(),函数最后一行是return,但是编译的时候说return后面必须有值。但是加上值的话,又说是void类型。去掉return的话也不可以。而且若把return换成exit的话,系统根本不认识exit.标注:偶是菜鸟。
发表于 2004-6-15 20:43:19 | 显示全部楼层
既然没有返回值,为什么要return呢?
贴出代码来看看。
 楼主| 发表于 2004-6-16 15:38:43 | 显示全部楼层
#include <stdio.h>
#include <signal.h>
main()
{
        void sigcatcher(int);
        int i,r=1;
        signal(SIGINT,sigcatcher);
        signal(SIGQUIT,sigcatcher);
        while(1)
        {
                i=r;
                puts("DEL for time out,CTRL-\for quit");
                r=rand();
                while(i<r)
                {
                        printf("%d",r%i);
                        i++;
                }
        srand(i%23+1);
                printf("\n");
        }
               
}
void sigcatcher(signum)
{
        printf("\n signal #%d be catched\n",signum);
        if(signum==SIGQUIT)
                exit(1);
        sleep(2);
        signal(signum,sigcatcher);
       
}
 楼主| 发表于 2004-6-16 15:43:48 | 显示全部楼层
编译的时候,警告为:return type defaults to "int"
发表于 2004-6-16 19:54:34 | 显示全部楼层
linux系统要求main函数向系统返回一个整数以便让系统知道程序退出的状态。在main()之前加一个int 就行了。
发表于 2004-6-22 17:08:52 | 显示全部楼层
这么经典!! E文没学好
发表于 2004-6-25 21:25:23 | 显示全部楼层
linux 7.0。。。rh7吧

void函数肯定可以return
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表