c free 5.0的版本为什么主函数 main 的返回值类型必须为 int 型;若为void 则编译错误?请问谁知道啊。

c free 5.0的版本为什么主函数 main 的返回值类型必须为 int 型;若为void 则编译错误?请问谁知道啊。,第1张

某写版本的编译器不支持main返回void的,比如最近的gcc。因为C99标准禁止main返回void。本身升唯返回void就是错误的,这个从以前就这样~~不知道为啥漏激有吵搜培人老喜欢使用void 让编译器自己去添加返回值。

没有帆余或代码,所以不能详细解释,有可能是你的命令行中包含了不存在的文件。

例如: #include "stdio.h" //stdio.h这是c语言提供的输入输出态伍函数库,我们可以使用

但如果你成 #include "stddio.h" 系统就会报错,错误提示和你给的错误提示是一毁祥样的。

因此,有可能是你的包含文件写错了。

没有必要去较这个真,比如 q 的值在我这里的结果是 9(最后的 % 是 shell 标识的无换行)

编译器是 Xcode 套件里面的 clang14。它报了 多个无序修改的 warning

我和楼下 arongustc 观点一样,这种东西本身就不应该存在。。

非要分析就是国内大学教的内容有问题,工作上这么写纯粹是找打正常来说写代码就应该是为了清晰易读,容易引起歧义的地方主动避开而不是去学习怎么分或握念析这么复杂的表达式(比如写成多个 i--,然后最后加起来)

比如,实际写代码的时候,很多复杂的表达式问题,拆成多个式子、加个括号等等一切矛盾解决,清晰易懂。但考试就非不加这个然后考为什么这么算。

---

至于为什么会这样,这种行为本身就是未定义的。简单说,皮猛C 语言规范不会明确定义这种情况下到底该怎么算,做编译器的人也不会专门针对这个去统一意见。具体能算出来什么值谁也没有规定,只是说,按照原有的解析表达式的方式碰巧算出来啥就是啥(但是因为不同编译器计算方衫困式不同,所以这种没有明确定义的行为,运算结果可能也不同)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12328265.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存