概念
什么是C语言?
答:C语言是面向过程的语言。
发展历史:1972由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发---》1989年,美国国家标准协会(ANSI)制定了C语言的标准,称为ANSI C。
应用场景:系统软件开发、嵌入式开发、高性能计算、游戏开发......
编写工具
DevC++:轻量级、软件小、满足学习需求。除此之外,使用VSCode也行。
使用步骤
创建.c文件:点文件---》新建---》源代码
写完代码后,点击此按钮编译运行(会生成.exe文件)
注意:最后Ctrl+S保存文件
第一个程序
目的:打印一串字母"Hello World"到控制台显示
程序代码:
#include <stdio.h> //引入头文件,即库文件
void main(void) //主函数,程序的入口
{
printf("Hello World"); //printf()输出函数,"Hello World"是输出的内容
}
解析:
#include <stdio.h>:引入头文件。#include是预处理命令,<stdio.h>是C标准头文件(C写好的代码,printf函数就在<stdio.h>里面,引入就是告诉它:"我要用这个!")
void main(void){}:主函数,程序一运行就进这里面执行代码,这是整个程序唯一的正门。
printf("Hello World"); 库函数,作用是将内容打印到控制台显示。"Hello World"就是要显示的内容。
结果:
注释
注释在编写程序是很有必要的,在一些函数旁边进行注释,解释该函数有什么作用。方便别人理解,也方便自己理解。在c语言中有单行注释和多行注释
单行注释
单行注释采用//
#include <stdio.h> //引入头文件,即库文件
void main() //主函数,程序的入口
{
printf("Hello World"); //printf()输出函数,"Hello World"是被输出内容
}
多行注释
多行注释采用/*开头.....*/结尾
#include <stdio.h> //引入头文件,即库文件
void main() //主函数,程序的入口
{
/*
使用函数:printf()
作用:将内容打印到控制台
打印内容:Hello World
*/
printf("Hello World");
}
思考
问:有没有其他的头文件?
答:有,头文件分为:标准头文件和自定义头文件。
标准头文件里面是C准备好的各种函数,如输入输出函数等就在<stdio.h>头文件,求绝对值、求平方立方函数等就在<math.h>.......特点:标准头文件名都是用<xxx.h>包裹。
引入标准头文件:
#include <stdio.h>
自定义头文件里面是我们自己写好的各种函数,因为C准备的函数不一定能满足我们,所以要自食其力。特点:自定义头文件名都是用"xxx.h"包裹
引入自定义头文件:
#include "myFile.h"
问:我的程序是怎么跑起来的?
答:计算机只认识机器语言,也就是二进制(0和1),所以要将编写好的高级语言程序(.c文件)转换成可执行目标文件,主要过程:预处理--》编译--》汇编--》链接
1 ) 预处理阶段 :预处理器对源程序中以字符 # 开头的命令进行处理 , 例如将 #include 命令后面 的 .h 文件内容插入程序文件 。输出结果是一个以 i 为扩展名的源程序 hello.i。
2 ) 编译阶段: 编译器对预处理后的源程序进行编译, 生成一个汇编语言源程序hello.s。汇编语言源程序中的每条语句,都以一种文本格式描述了一条低级机器语言指令。
3)汇编阶段:汇编器将 hello.s 翻译成机器语言指令,把这些指令打包成一个称为可重定位目标代码文件hello.o, 它是一种二进制文件,因此用文本编辑器打开会显示乱码。
4)链接阶段:链接器将多个可重定位目标代码文件和标准库函数合并为一个可执行目标文件,简称可执行文件。本例中,链接器将 hello.o 和标准库函数printf所在的可重定位 目标模块 printf.o合并,生成可执行文件 hello 。最终生成的可执行文件被保存在磁盘上。
而在Windows操作系统下可执行文件的后缀为exe,这也是为什么我们在Devc++中编译运行后,会冒出一个hello.exe文件。
在该系列中,文章的前部分采用简短的白话文讲解用法,而后部分采用更深入的角度讲解原理。思考是人类的结晶~如果你觉得有用,给我个点赞、收藏+关注哦~持续更新