language-agnostic - 所有程序都必须有返回值吗?

标签 language-agnostic coding-style operating-system

我目前正在编写自己的编程语言,主要用于教育目的。

在编写一个简单的 hello world 示例时,我意识到许多编程语言都采用以下形式:

write "hello world" to the console
return 0
  • 是否所有程序都必须以某种方式返回整数?
  • 做那些不做的 明确要求您声明返回值隐式返回 0 无论如何?
  • 这是否会在流行的操作系统之间发生变化? Windows NT、Linux 内核还是 Mac OS Xs 内核?
  • 如果是,为什么?

我不确定将此问题标记为什么,当然感谢任何帮助。

最佳答案

这是一个特定于操作系统的问题,因此没有人可以回答是否适用于所有操作系统。也就是说,我相信,在任何合理的操作系统中,是的 - 程序必须具有返回值。

为什么?链接程序执行,从而报告问题、重新启动等。 没有不返回值的程序,它只是一个对程序员隐藏它的编译器。

所有主要操作系统都是这种情况吗?大概。 0 通常意味着成功,但您在编写程序时不应该做出这样的假设;使用语言常量。

如果您编写自己的语言,您可以将错误代码(异常、终止原因)映射到宿主语言的错误代码。

关于language-agnostic - 所有程序都必须有返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602613/

相关文章:

Android/Windows 混合应用

algorithm - 布局许多不规则的盒子,使它们适合屏幕

language-agnostic - 抽象基类何时可以拥有(非静态)数据成员?

language-agnostic - 确定性有限自动机与确定性下推自动机

linux - 系统侧 C 与 C?

linux - 切换到用户模式时,非抢占式和抢占式内核有什么区别?

java - 在我的 pojo 字段中使用 "public"修饰符而不是 "private"是否有任何风险?

javascript - JavaScript应该放在哪里?

Python 异常链

java - 有人可以解释什么是虚拟机以及它们为什么有用吗?