1.1. C语言背景
一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言就是人和计算机交流的一种语言。语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能:
- 说的一方传递信息,听的一方接收信息;
- 说的一方下达指令,听的一方遵循命令做事情。
语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。
1.1.1 计算机结构组成
1.1.2 C语言的优缺点
优点
代码量小
执行速度快
功能强大
编程自由
2)缺点
写代码实现周期长
可移植性较差
过于自由,经验不足易出错
对平台库依赖较多
1.1.3 C语言应用领域
1.2 C语言程序
1.2.1 C语言编译过程
C代码编译成可执行程序经过4步:
- 1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
- 2)编译:检查语法,将预处理后文件编译生成汇编文件
- 3)汇编:将汇编文件生成目标文件(二进制文件)
- 4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
1.2.2 代码分析
#include<stdio.h>
int main()
{
printf("Hello word!\n");
return 0;
}
这里我们以打印hello word 的简单程序为例
- include头文件包含
#include的意思是头文件包含,#include <stdio.h>代表包含stdio.h这个头文件
使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件
可以通过man 3 printf查看printf所需的头文件
#include< > 与 #include "“的区别:
< > 表示系统直接按系统指定的目录检索
“” 表示系统先在 “” 指定的路径(没写路径