爱问知识人 爱问教育 医院库

无返回值的函数前面不加void好像从来不报错。

首页

无返回值的函数前面不加void好像从来不报错。

我看见有的书上,自编的函数(无return)前落写了void,还以为是编者错误。但我自己写程序时,故意不写void,运行结果完全正确。
也就是说,系统把这个函数当作int类型的了,但函数无返回值。却不影响运行结果。
请教各位xdjm,这是怎么回事?好像理论和实际差别很大啊。
(用vc和tc都没报错)

提交回答
好评回答
  • 2019-03-08 10:03:13
    试试这个程序的各种情况,你会对返回值理解更好一点!
    /*void */prt()
    {
    	printf("Hello\n");
    //	return 1;
    }
    int main()
    {
    	int retval=0;
    	retval=prt();
    	printf("retval=%d\n",retval);
    	return 0;
    }
    函数不加返回类型,默认为整型返回,无return的返回随机的一个数,你的测试虽然不报错,会报警告吧?比如上面我的测试无return时返回6;如果你的返回值不重要当然没大的影响,如果你要检验返回值,不写返回语句就麻烦了。
    另外关于main()函数的返回值,有一些注意的地方,就不说了,网上有。
    看到xdjm还以为你是西电(xd)的呢!网上一搜原来不是一个意思!

    D***

    2019-03-08 10:03:13

其他答案

    2019-03-08 10:14:03
  • 呵呵~ 这是不报错的,但是会有警告~最好不要这样写~一个真正没有语法错误的程序应该是既无ERROR又无WARNING的!

    黄***

    2019-03-08 10:14:03

  • 2019-03-08 09:46:26
  • 那是默认的!最好加上,不然在大的工程里面还是会造成麻烦的!的!

    怪***

    2019-03-08 09:46:26

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 175-194
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):