【C语言】Hello, world!

目录

1. C语言

2. 源文件

3. 注释

4. #include指令和头文件

5. main函数

6. printf函数

7. 语句

8. return语句


/*
   输出Hello, world!
*/

#include  /* 包含头文件 */

int main() // 主函数
{
	printf("Hello, world!\n"); // 在屏幕上打印Hello, world!并换行
	return 0;
}

1. C语言

C语言是贝尔实验室的Ken Thompson、Dennis Ritchie等人开发的UNIX操作系统的“副产品”。Thompson独自编写出了UNIX操作系统的最初版本,这套系统运行在DEC PDP-7计算机上。这款早期的小型计算机仅有16KB内存(毕竟那是在1969年)。

与同时代的其他操作系统一样,UNIX系统最初也是用汇编语言编写的。用汇编语言编写的程序往往难以调试和改进,UNIX系统也不例外。Thompson意识到需要用一种更加高级的编程语言来完成UNIX系统未来的开发,于是他设计了一种小型的B语言。Thompson的B语言是在BCPL语言(20世纪60年代中期产生的一种系统编程语言)的基础上开发的,而BCPL语言又可以追溯到最早(且影响最深远)的语言之一——Algol 60语言。

不久,Ritchie也加入到UNIX项目中,并且开始着手用B语言编写程序。1970年,贝尔实验室为UNIX项目争取到一台PDP-11计算机。当B语言经过改进并能够在PDP-11计算机上成功运行后,Thompson用B语言重新编写了部分UNIX代码。到了1971年,B语言已经明显不适合PDP-11计算机了,于是Ritchie着手开发B语言的升级版。最初,他将新开发的语言命名为NB语言(意为“New B”),但是后来新语言越来越偏离B语言,于是他将其改名为C语言。到了1973年,C语言已经足够稳定,可以用来重新编写UNIX系统了。改用C语言编写程序有一个非常重要的好处:可移植性。只要为贝尔实验室的其他计算机编写C语言编译器,他们的团队就能让UNIX系统也运行在那些机器上。

总结:

B语言创始人:Ken Thompson(肯·汤普森)

C语言创始人:Dennis Ritchie(丹尼斯·里奇)

UNIX创始人:Ken Thompson、Dennis Ritchie

2. 源文件

源文件(source file)一般指用汇编语言或高级语言写出来的代码保存为文件后的结果。

C语言源文件的拓展名为.c。

3. 注释

  • /*……*/(注释一行或多行)
  • //……   (只能注释一行)

4. #include指令和头文件

在编译C程序之前,预处理器会首先对其进行编辑。我们把预处理器执行的命令称为指令。

#include指令称为文件包含指令,通过#include指令,就可以把stdio.h头文件中的全部内容都读取到程序中。

stdio是指 “standard input & output"(标准输入输出),stdio.h是指标准输入输出头文件,该文件中包含了供编译器使用的输入和输出函数,如库函数printf的函数原型声明包含在stdio.h中。

5. main函数

  • main函数又称主函数。
  • main函数的位置是任意的。
  • 一个工程中有且仅有一个main函数。
  • main函数是程序的入口,代码从main函数的第一行开始执行。

int是main函数的返回类型,表明main函数的返回值的类型是整型。main函数的返回值是状态码:返回0,表示程序正常结束;返回非0值,表示程序异常结束。

main函数的写法:

// 一般写法
int main()
{
	// ...
	return 0;
}

// C90勉强接受,但C99和C11不接受的写法
main()
{
    // ...
}

// 所有标准都不接受的写法
void main()
{
    // ...
}

6. printf函数

printf函数是格式化输出函数(f源自为格式化format),是一个库函数,头文件stdio.h。

由C语言提供的这些为数众多的函数称为库函数(library function)。通常各个编译器在提供C语言规定的函数之外,还会提供各自不同的函数。具体内容请参考各编译器的说明书。

7. 语句

  • 语句必须以分号结尾。
  • 一行可以写多条语句。
  • 开始执行程序后,代码中{}之间的语句会按顺序执行。
; // 空语句

8. return语句

return 表达式;

有返回值的C函数要有return语句。如果遗漏main函数中的return语句,程序在运行至最外面的右花括号( } )时会返回0。因此,可以省略main函数末尾的return语句(强烈建议不要省略)。但是,不要在其他有返回值的函数中漏掉它。

在main函数中执行return语句是终止程序的一种方法,另一种方法是调用exit函数,此函数属于头。传递给exit函数的实际参数和main函数的返回值具有相同的含义:两者都说明程序终止时的状态。

为了表示正常终止,传递0:

exit(0);

因为0有点模糊,所以C语言允许用EXIT_SUCCESS来代替(效果是相同的):

exit(EXIT_SUCCESS);

传递EXIT_FAILURE表示异常终止:

exit(EXIT_FAILURE);

EXIT_SUCCESS和EXIT_FAILURE都是定义在中的宏。EXIT_SUCCESS和EXIT_FAILURE的值都是由实现定义的,通常分别是0和1。

作为终止程序的方法,return语句和exit函数关系紧密。事实上,main函数中的语句

return 表达式;
// 等价于
exit(表达式);

return语句和exit函数之间的差异是:不管哪个函数调用exit函数都会导致程序终止,return语句仅当由main函数调用时才会导致程序终止。

你可能感兴趣的:(C语言,c语言)