世界’s Shortest C Program

时不时地看一个非常基本的例子很有趣。每个程序员都熟悉“Hello World”程序作为新板或编程语言的第一个程序;但是,具有讽刺意味的是,这不是C中最短的程序。可以编写的最短的C程序如下所示:

 

int main(无效)

{

返回0;

}

 

这看起来很简单,但是可以写一些更短的东西吗?以下是最短的程序吗?

 

void main(void)

{

}

 

我的每个C编译器’如果将main定义为

 

void main(void)

 

原因是C标准(I’我们检查了C90和C99)对main的两个不同定义

 

int main(void){/ *… */}

 

要么

 

int main(int argc,char * argv []){/ *… */ }

 

对于嵌入式软件,使用第二个定义没有太多意义。通常,它将允许主机操作系统将数据传递给诸如’的名称等。良好的编码习惯将要求编写的程序没有错误,因此main应该返回一个int,如第一个示例所示。

 

这仅留下简单的return语句。可以删除return语句吗? C90标准不允许删除return语句。编译器将再次生成警告。但是,C99标准确实允许隐式声明return语句(不包括在内)。在C99中,如果未提供return语句并且主要完成(可能我们没有’如果是在嵌入式系统中,则main默认情况下将返回0。

 

再次,好的做法是显式声明返回值。大多数代码库都包含标准允许的显式返回0。尽管该标准还在stdlib.h中声明了值EXIT_SUCCESS或EXIT_FAILURE。使用这些值可能比使用幻数0或其他常数更合适。返回任何其他内容都是非标准的实现。

One thought 上 “The World’s Shortest C Program”

  1. 不是特别有用,但是我使用的每个C编译器’ve测试将编译并链接零字节‘.c’文件放入有效的可执行文件中,该可执行文件在运行时会打印出自己的源代码(即不打印任何内容)。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.