社区
C语言
帖子详情
为什么不报错?
treeroot
2006-03-13 01:19:16
我声明没有返回值的方法返回一个值竟然都可以,声明有返回值的也可以没有return语句
都只是一些警告而已,竟然可以编译运行,怎么回事,难道是编译器的问题(VC6.0)
void f1(){
return 1;
}
...全文
186
8
打赏
收藏
为什么不报错?
我声明没有返回值的方法返回一个值竟然都可以,声明有返回值的也可以没有return语句 都只是一些警告而已,竟然可以编译运行,怎么回事,难道是编译器的问题(VC6.0) void f1(){ return 1; }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anguofeng
2006-03-13
打赏
举报
回复
好像在6.0里的确是不报错
但是在gcc里会报错的
c++因为有函数重载的问题所以对函数的返回值和参数检查会特别严格
jixingzhong
2006-03-13
打赏
举报
回复
有警告就差不多了 ...
不过,C++相比于C还是有很多这方面的限制的 ...
cenlmmx
2006-03-13
打赏
举报
回复
..
goodluckyxl
2006-03-13
打赏
举报
回复
这个返回的问题告警和报error只要报信息就不关编译器的好坏
如果说完全没有反应的那可以定义为烂编译器
原因是这样的:
就那楼主的例子, 无返回值,在函数调用中R0-R7作为通用寄存器
会当作变量返回的地址区
你return 1 最坏的情况 编译器往r0写了数据作为返回值
但是当真正调用完毕后因为根据实际函数返回时检测出无参数类型
就不需要把R0当作参数返回
同理在有返回时没有return,最终会选择r0返回时 最坏情况里面的值非理想值而已
而编译器已经尽到责任
liweiswin
2006-03-13
打赏
举报
回复
警告 noname.c 5: void类型的函数不应有返回值在 f1 函数中
这是我在WINtc下编译的警告
ykzhujiang
2006-03-13
打赏
举报
回复
在C语言中这样做是可以的,但是在C++里面是不行的。
这是因为C语言中对于函数签名没有将参数包括在内,当该函数所在的编译单元被编译后,将会生成一个函数,名字类似_f1,对于其参数是不表示在其中的。这也是C语言中一个比较重要的问题,因为他导致了不安全性。并且在C语言中对于外部函数的检查比较松,比如一个函数void f(int),在另外一个文件中可以按照void f(float)等等的方法进行调用而不会报错,这样虽然编译可以通过,但是实际上是有问题的,会造成很难发现的错误。
然而在C++中,函数的签名包括了参数,这样前面的两个函数就会被编译成_f_int和_f_float的形式,这样程序就会有一个link错误,因为他们的函数签名时不一样的。
iamcaicainiao
2006-03-13
打赏
举报
回复
应该就是编译器的问题。 vc6.0真的很烂。
ouyh12345
2006-03-13
打赏
举报
回复
在偶的编译器(VC6SP6)里,有返回值的不返回则有错误
变量在声明前调用,为什么var 不会
报错
,let 会
报错
?什么是变量提升?
1、变量在声明前调用,为什么var 不会
报错
,let 会
报错
? var 定义变量的时候,js是首先直接把变量声明到作用域的最顶部的,所以这个时候,全局都能找到这个变量 所以在定义之前调用这个变量,是不会
报错
的。所以...
java中输入小数为什么老是
报错
?求各位大神帮助!
有大神知道这里为什么
报错
吗?我输入整数一点问题都没有,但是每次输入小数都会报这个错误。
int不是默认为0吗?为什么输出会
报错
??
在全局变量中使用才能输出,而在方法中是必须初始化的,必须给其赋值,否则会
报错
!public class IntDemo { public static void main(String[] args) { int a; System.out.println("a = " + a); //...
安卓import android.support.v7.app.AppCompatActivity
报错
?;
安卓import android.support.v7.app.AppCompatActivity
报错
?; 试试导入 import androidx.appcompat.app.AppCompatActivity; 导入新包前是很多显示错误,可能代表该包不兼容或者电脑中没有该包 于是自己新建一个...
vue 给组件传参,写入数字没有问题,但直接写入固定字符串
报错
?
Vue 给组件传参,写入数字没有问题,但直接写入固定字符串
报错
? 代码如下: institution组件在新增、编辑时显示输入框,在查看详情时显示文本 <template> <div class="z-input"> <div class=...
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章