C语言概述

什么是程序

C语言(基础)_搜索

计算机语言简史

第一代:机器语言

1946年2月14日,世界上第一台计算机ENIAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的是用二进制代码表示的语言,与人类语言差别极大,这种语言就称为机器语言。比如一段典型的机器码:

Ø 1. 0000,0000,000000010000 代表 LOAD A, 16

Ø 2. 0000,0001,000000000001 代表 LOAD B, 1

Ø 3. 0001,0001,000000010000 代表 STORE B, 16

下图是第一代程序员女性程序员Ada正在使用机器语言编程:

C语言(基础)_汇编语言_02

第二代:汇编语言

使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础,比如:LOAD、MOVE等,使人更容易使用,因此,汇编语言也称为符号语言。

优点:能编写高效率的程序。

缺点:汇编语言是面向机器的,不同计算机会有不同的汇编语言,程序不易移植。

目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。

C语言(基础)_Code_03

第三代:高级语言

高级语言,是一种接近于人类使用习惯的程序设计语言,它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学算式差不多,接近于自然语言和数学语言,容易为人们掌握。


高级语言独立于计算机硬件,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行。


常见的高级语言有Fortran、ALGOL、Basic、COBOL、LISP、Pascal、PROLOG、C、C++、VB、Delphi、Java、PHP、JavaScript、Python等。

为什么学习C语言

C语言(基础)_汇编语言_04

C 语言是最流行的编程语言之一,下图是2023年编程语言排名,排名网站网址为:https://www.tiobe.com/tiobe-index/


C语言(基础)_汇编语言_05

C语言的发展历程

C语言(基础)_汇编语言_06

C语言的发行版本

(1)K&R C(1978年):由柯尼汉和里奇合写的《C 程序设计语言》成为公认标准,简称为K&R C。

(2)ANSI C(C89/C90,1989年):第一个ISO标准,也叫ANSI C,规范了K&R C,确保了可移植性。

(3)C99(1999年):第一次大修订,引入许多特性如//注释、可变长度数组等,成为最流行版本。

(4)C11(2011年):再次修订,增加_Generic、static_assert等功能,跟进新技术。

(5)C17(2018年):C11在2017年修补,2018年发布的C17只解决了C11的缺陷,未加入新功能。

(6)C23(预计2023年): 2023年发布的C23计划增强安全性、消除实现定义行为、引入模块化语言等,提升安全和可靠性。


C语言的应用场景

C语言(基础)_汇编语言_07

C程序开发快速入门

开发工具选择

1)Visual Studio 工具

Visual Studio(简称 VS)是由微软公司发布的集成开发环境,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。

官网地址:https://visualstudio.microsoft.com 

1)Code::Block工具

Code::Block是一个免费的跨平台IDE,它支持C、C++和Fortan程序的开发,Code::Block的最大特点是它支持通过插件的方式对IDE自身功能进行扩展,这使得Code::Block具有很强的灵活性,方便用户使用。

官网地址:https://www.codeblocks.org 

2)Clion工具

CLion是一款由JetBrains推出的跨平台C/C++集成开发环境(IDE),它具有智能编辑器、CMake构建支持、调试器、单元测试、代码分析等功能,可以极大提高C/C++开发效率。

官网地址:https://www.jetbrains.com/clion

3)VS Code

Visual Studio Code(简称VS Code)是一款由Microsoft开发的免费、开源的代码编辑器,它是一种轻量级但功能强大的集成开发环境(IDE),VS Code旨在提供一种优秀的编码体验,适用于各种编程语言和应用程序开发任务。

官网地址:https://code.visualstudio.com

VS Code 用户界面友好、上手快、安装简单,插件丰富,所以本教程选择 VS Code 作为默认的开发工具。

4)在线编辑工具

CodingGround: https://tutorialspoint.com/compile_c_online.php

OnlineGDB:https://onlinegdb.com/online_c_compiler

Lightly:https://cde2f3ce.lightly.teamcode.com/


开发工具安装

安装 MinGW-w64

1)MinGW-w64 介绍

VS用于编辑C 代码,我们还需要 C 编译器来运行 C 代码,所以安装VS Code之前我们需要先安装 C 编译器。这里我们使用 MinGW-w64(Minimalist GNU for Windows 64-bit)。

MinGW-w64 是一个用于Windows操作系统的开发工具集,其包含了C语言编译器 GCC(GNU Compiler Collection)。

官网地址:https://www.mingw-w64.org

在资料文件夹中,有文件“mingw64.zip”,即是 MinGW-w64 的安装包,我们安装的 MinGW 版本是11.0,对应的GCC版本为13.2.0。

1)解压 MinGW

将资料文件夹中的“mingw64.zip”移动至 C 盘,使用解压工具进行解压(本教程中使用的是7zip),理论上你可以移动到任何地方解压,但注意路径中不能包含中文。

C语言(基础)_汇编语言_08

2)将MinGW添加至环境变量

(1)进入mingw64文件夹下的bin文件夹,复制当前路径。

C语言(基础)_汇编语言_09

(2)在最底部的任务栏搜索框中搜索“高级系统设置”

C语言(基础)_汇编语言_10

注意,如果在最底部的任务栏中没有看到搜索框,请点击“windows”键。

如果是windows 10 系统,请在弹出开始菜单之后直接打字,搜索框会自动出现。

如果是 windows 11 系统,搜索框会在开始菜单顶部。

C语言(基础)_Code_11

(1)进入高级系统设置之后,点击“环境变量”按钮。


(2)双击“Path”。


(3)点击“新建”,粘贴前面复制的 MinGW 路径地址,连按三个“确定”(包括前面打开的两个窗口,也需要点击“确定”)。


1.1.1 安装 VS Code


1)安装

(1)双击安装包,开始安装。


(2)选择安装位置。


(3)选择开始菜单文件夹,这里我们采用默认选项,直接点下一步。


(4)选择附加任务,本步骤中的选项我们全部勾选。


(5)点击安装


(6)完成安装,勾选“VS Code 自动启动”。


2)选择颜色主题风格

VS Code 首次启动会打开欢迎页面,我们可以在欢迎页面中选择颜色主题风格,默认是深色模式,我在这里选择浅色模式,后续也可以从设置中再次修改主题风格。


1.1.2 配置 VS Code

1)安装中文语言包

安装中文语言包扩展,Chinese(Simplified)(简体中文)Language Pack for Visual Studio Code,点击扩展按钮,从搜索框搜索“chinese”,第一个就是我们要安装的扩展。


扩展安装完成后需要重启VS Code,正常情况下会弹出重启按钮,点击即可重启,如果没有弹出,可自行重启VS Code。


2)安装 C 语言扩展

点击最左侧“扩展”按钮,搜索“C/C++”,选择“C/C++ Extension Pack”,它是 VS Code 官方推荐的工具包,包含了开发 C/C++ 所需要的多个扩展。


1.1 年轻人的第一个 C 程序

1.1.1 需求说明

要求开发一个程序,输出"hello,world!"。

1.1.2 开发步骤

(1)创建一个新文件夹,注意文件夹名字中不能有中文,所在的路径中也不允许有中文,如下图:


(2)打开 VS Code,单击顶部菜单中的“文件”,在下拉菜单中点击“打开文件夹”,找到上一步创建的文件夹。


(3)首次打开文件夹,需要点击“是,我信任此作者”,如下图。


(1)新建文件 main.c,如下图:


(2)将下面的代码写入main.c 中。

#include <stdio.h>

int main()
{
    printf("Hello World");
    return 0;
}

(3)运行代码,如下图:


1.1.3 程序代码分析

1.2 C程序运行机制流程

(1)编写

编写C语言源程序代码,并以文件的形式存储到磁盘中,源代码文件以“.c”作为扩展名,如本项目中main.c 文件。

(2)预处理

在编译之前,预处理器会处理源代码文件,主要进行一些文本上的处理,包括去掉多余的空格和注释,处理预处理指令(后面会学到),生成经过处理的源代码文件,通常带有.i扩展名。

(3)编译

编译器接受预处理后的源代码文件,并将其翻译成汇编代码,生成汇编文件,通常带有.s或.asm扩展名。

(4)汇编

汇编器将汇编代码翻译成机器码并生成一个或多个目标文件,目标文件是二进制文件,通常带有.o(在Unix-like系统上)或.obj(在Windows上)

(5)链接

链接器将多个目标文件(如果有的话)合并在一起,包括C标准库文件和其他库文件,生成最终的可执行的二进制程序(.exe 程序)。

库文件是由系统提供,里面包括内置的标准函数和数据结构集合等,我们代码中使用的<stdio.h> 就是标准库提供的,里面定义 printf 这个函数。

(6)运行

执行该.exe文件得到程序的运行结果。

1.3 C程序开发注意事项

(1)C程序源文件以"c"为扩展名。

(2)C程序的执行入口是main() 函数。

(3)C语言严格区分大小写。

C程序由一条条语句构成,每个语句以 ";" 结束。