c - 将 return 0 与 void main() 一起使用?
问题描述
我只是想看看会发生什么,如果我使用return 0
带有void main()
. 我原以为编译器会给出一个错误,但它只是给出了一个警告并成功执行了程序,但最后返回了一些非零值,现在我怀疑为什么程序执行时没有错误,然后当我返回一些值时用过void main()
?
#include<stdio.h>
void main()
{
printf("Hello World\n");
return 0;
}
解决方案
我怀疑为什么程序执行时没有错误,然后在我使用 void main() 时还返回一些值
C 标准说正确的做法是int main
,并且允许符合要求的实现允许其他签名,main
如果它愿意的话。
显然,您的实现选择允许这种非标准用法,并且它表现出的行为是编译时的警告,然后是运行时观察到的行为。
但你已经知道了。编译器做编译器所做的事情,因为编译器作者是这样写的。如果您想知道他们做出这些选择的原因,请询问他们。由于您还没有说您使用的是什么编译器,所以我们没有更多的事情要做。
推荐阅读
- python - any() 和 all() 是如何工作的?当我期望 False 时它返回 True
- node.js - 如何在 React/Node 应用程序中使用 GraphQl 查询 Java 数据类型(长、短、BigDecimal)
- flutter - 如何在 Flutter 中制作类似 App Store 的 iOS 卡片动画?
- cefsharp - 在哪里为 CefSharp.Winforms 配置 BrowserSettings
- android - 如何在单击推送通知时打开特定活动
- javascript - Javascript - 如何将相同的 JSON(或替代)文件加载到 node.js 和浏览器中
- c - 返回数组中的第二个正整数 - 函数和数组
- python - 如何将特定的 .py 文件导入到我的目录中
- ruby-on-rails - 从外部模型保存到数据库
- c - 我的 c 程序中是否存在循环问题?