一、第一个C语言程序
C语言主要包括一下部分:
1.预处理指令
2.函数
3.变量
4.语句&表达式
5.注释
C语言第一个程序:
学会输出“Hello World”,C语言入门%50,哈哈...
文件:hello.c
程序解读:
1.程序的第一行#include <stdio.h>是预处理指令,告诉我们的编译器在编译之前要包含stdio.h这个文件。
2.int main()是主函数,程序开始执行的地方。
3.程序中的/*....*/是注释,用来注释内容,他们不会被编译。
4.printf(...)是C中的另一个输出函数,会在屏幕上显示消息“hello world”,后面的\n是换行符,指换到下一行。
5.return 0;终止main()函数,返回一个0。
编译与执行
如何把源代码保存在文件中,并编译运行它?
1.打开一个文本编译器,添加上述代码。
2.保存文件为hello.c。
3.打开终端,进入到保存文件所在的目录。
4.键盘上输入gcc hello.c命令,回车,编译代码。
5.如果代码没出错,命令提示符会调到下一行,并生成a.out(Linux操作系统中)可执行文件。
6.输入./a.out文件来执行程序。
7.屏幕上会显示“hello world”。
案例:
二、C语言编译过程
什么是编译?
C语言的编译过程可以理解为把高级计算机语言代码转换为计算机可以理解的机器代码的过程,也就是一个翻译的过程。
C语言的编译过程包括以下四个步骤:
(1)预处理(cpp)
(2)编译(as)
(3)汇编(gcc)
(4)连接(ld)
如下图所示,就是c程序编译的完整过程:
各个编译过程都在干嘛呢?
(1)预处理
预处理结束后会产生一个后缀为(.i)临时文件,这一步由预处理器完成,预处理的主要完成任务:
①删除所有的注释
预处理会删除所有的注释,因为注释不属于程序代码,对程序没有特别的作用
②宏扩展
宏是使用#define指令定义的一些长常量值或表达式,宏调用会导致宏扩展。预处理器创建一个中间文件,其中一些预先编写的汇编级指令替换的表达式或常量(基本上都是匹配的标记)。为了区分原始指令和宏扩展产生的程序集指令,在每个宏展开语句中添加一个“+”号。
③文件包含
(2)编译
C语言中的编程阶段使用内置编译器软件将(.i)临时文件转换为具有汇编级指令的汇编文件(.s),为了提高程序的性能,编译器将中间文件装换为程序集文件。汇编代码是一种简单的英文语言,用于编写低级指令。
(3)汇编
使用汇编程序将程序集代码(.s)文件转换为机器可理解的代码(二进制、十六进制形式)。汇编程序是一个预先编写的程序,它将汇编代码转换为机器代码。它从程序集代码文件中获取基本指令,并将其转换为特定于计算机类型(也就是目标代码)的二进制、十六进制代码。生成的文件与程序集文件同名,在DOS中称为扩展名为.obj的对象文件,在UNIX操作系统重扩展名为.O。程序集文件hello.s将转换为具有相同名称但扩展名不同的对象文件hello.o。
(4)连接
下列是C语言编译过程的流程图:
编译过程: