1_C语言 -预备知识

预备知识

计算机组成和⼯作原理

计算机组成

计算机(Computer)

  • 能进⾏计算和逻辑判断的设备
  • 在⼀组指令(instructions)ž程序(programs)的控制下处理数据硬件(Hardware)组成计算机的各种物理部件键盘、⿏标、显⽰器、内存、硬盘、光驱等等软件(Software)计算机中运⾏的程序和数据

硬件(Hardware)

  • 组成计算机的各种物理部件

  • 键盘、⿏标、显⽰器、内存、硬盘、光驱等等

    硬件 = 电⼦设备 + 单⽚机编程(单⽚机,微控制器) + 集成电路(原理图PCB设计) + 嵌⼊式系统

软件(Software)

  • 计算机中运⾏的程序和数据

    软件 = 系统软件(linux系统) + 应⽤软件 + 编程语⾔(C/C++) + 算法和数据结构

计算机六大部件
  1. 中央处理器(CPU)

  2. 内存(Memory)

  3. 输⼊设备(Input Devices)

  4. 输出设备(Output Devices)、

  5. 外存储器(External Storage)

  6. ⽹络(Network)

计算机的工作原理
  • 存储程序
  • 程序控制

计算机语言

  • 机器语言:二进制0和1构成
  • 汇编语言:充当翻译
  • 高级语言:C/C++,Java,Python,PHP,C#

C语言的简史与特点

嵌入式开发就是针对Linux系统的开发,而Linux系统是使用C语言开发的,所有我们从事嵌入式开发要使用C语言。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

C语言的起源
  • 其前⾝是B语⾔;

  • B语⾔是美国⻉尔实验室的 Ken Thompson于1969年开发出来的,并且⽤B语⾔编写了初版的UNIX系统

  • 1972年美国⻉尔实验室的Dennis 出版Ritchie在B语⾔基础上开发的C语⾔.C语⾔提供了丰富的数据类型和标识符,使得程序的编写变得⾮常⾼效和⽅便。

  • 1973年初,C语⾔的主体完成。汤普森和⾥奇迫不及待地开始⽤它完全重写了UNIX。

C语言的标准

为了C语言健康发展下去,很多有识之士及美国国家标准协会(ANSI)于1982年成立了一个委员会以确定C语言的标准。

  • 1989 ANSI 发布了第⼀个完整的C语⾔标准,即C89。不过⼈们习惯性的称为 “ANSI C”

  • 1990年ISO(国际标准化组织⼀字不改的采纳了 C89,官⽅给出的名称为 ISO C90) 。

  • 1999年,C语⾔标准经过了⼀次修正和完善后,ISO发布了新版的C语⾔标准,简称” C99”。

  • 2018年6⽉份发布的 “C18”GNU C 标准 (标准C的扩展) ,进⼀步增强了语⾔的稳定性和功能性。

  • 在2011年12⽉8⽇,ISO⼜正式发布了新的标准,称为ISO/IEC9899:2011,简称为“C11”。

  • “C23”是最新的标准,预计将进⼀步扩展C语⾔的功能和性能。

  • 应⽤于Linux 系统,当然Linux也⽀持标准C,因为标准C是跨平台的。

C语言的特点
  • C语⾔是⼀种强⼤⽽灵活的语⾔,可以⽤来编写任意复杂的程序。

  • C语⾔简洁、紧凑,使⽤⽅便。

  • C语⾔是可移植的。

  • C语⾔很适合结构化程序设计,因⽽要求⽤⼾以功能模块的⽅式来思考问题。

  • C语⾔可直接控制硬件 (位运算符,地址 )

  • ⽣成⽬标代码质量⾼,程序执⾏效率⾼,运⾏速度快。

C语言的应用非常广,也非常多,在此仅列出其中的一些应用:

C语言可以用来开发许多系统软件。如UNIX,LINUX等操作系统。

在软件需要对硬件进行操作的场合,用C语言明显优于其它高级语言。例如,各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。

在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。

随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C

语言。 C语言适用于多种操作系统,象WINDOWS、UNIX、LINUX等绝大多数操作系统都支持C语言,其它高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。

Java,C++,C# 都是在C语言基础上开发出来的。

C语言程序的开发过程

开发的三个步骤

  • 编辑:程序员向.C⽂件写⼊程序
  • 编译:将源⽂件(.c)编译成可执⾏程序(⼆进制)
  • 运行:运⾏可执⾏程序

在这里插入图片描述

C语言程序的编译过程

编译过程分为4个步骤:

  • 预处理
  • 编译
  • 汇编
  • 连接

在这里插入图片描述

C语⾔程序的基本结构

⼀个简单的C语⾔程序

/*************************************************************************
  > File Name:    demo01.c
  > Author:       萨斯给
  > Description:  C语言的基本结构
  > Created Time: 2024年11月25日 星期一 10时53分15秒
 ************************************************************************/

//引入系统库(系统的标准输入输出库,如:scanf(),printf())
#include <stdio.h>

//入口函数:每一个.c文件有=又且仅有入口函数
//c语言中入口函数的返回值和参数列表比较灵活,唯一的要求:函数名必须是main
int main(int argc,char *argv[])
{
    //向控制台输出hello 世界!
    printf("hello 世界!\n");//执行代码执行结束,使用“;”表示结束“\n”是换行符,用于换行
    return 0;
}

运行结果

在这里插入图片描述

程序结构分析

  • 注释部分

    • 以增加程序的可读性。

    • 不被执⾏。

  • 预处理命令

    • 程序中包含某⼀⽂件内容。

    • “stdio.h”为标准的输⼊输出函数头⽂件名。

  • 主函数

    • C程序由函数组成。

    • ⼀个C程序有且仅有⼀个主函数(main函数)。

  • 函数⾸部(函数头)/ 函数说明

    • 说明函数类型、函数名和函数参数。
  • 函数体

    • 包括变量说明和语句执⾏部分。
  • 函数调⽤语句

    • 格式输出函数printf()。

    • 输出“hello 世界!”。

在这里插入图片描述

C语⾔编码规范要求

C语言在编码的时候,需要遵循如下规范:

  • 常⽤缩进书写格式(⼀般缩进2或4个字符)

  • 有⾜够的注释(添加必要的注释,使代码更好理解)

  • 有合适的空⾏(⼀般预处理命令和函数、全局变量和函数、函数和函数之间要有空⾏,使代码结构更清晰)

  • {}对⻬(C和C++中 { 和 } 都需要独占⼀⾏)

  • 函数体内采⽤分层缩进和模块化的书写⽅式

  • 不把多条语句写在程序的同⼀⾏上

  • 命名:变量或函数命名要尽可能包含更多含义,但不能太⻓,可采⽤ _ 和缩写来命名。

C语⾔程序的设计特点

C语言程序在设计的时候,需要注意如下细节规范:

  • ⼀个C程序由⼀个或多个函数组成,但有且仅有⼀个主函数 (main函数);main函数是程序执⾏的⼊⼝,可置于程序的任何位置。

  • 程序中可以有预处理命令(如:include 命令)。预处理命令通常放在 程序的最前⾯。

  • 每个语句以分号结尾;预处理命令、函数头和花括号“}”之后不能 加分号。

  • 函数体由⼀对花括号“{ }”括起来。

  • 括在//内的⽂本为注释。

  • ⼀⾏可以写⼏个语句,⼀个语句也可以写在多⾏上。

  • 程序区分⼤⼩写字⺟。⼀般变量、语句等⽤⼩写字⺟书写;符号常量、 宏名等⽤⼤写字⺟书写。

  • 标识符和保留字(关键字)之间须加空格以⽰分隔。

C语言中的注释

在C语言中,注释一般分为两类,单行注释和多行注释

注释的作用:给代码添加解释说明性文字,提升代码的可读性,注释本身不会被执行。同时也可以使用注释屏蔽掉代码。

单行注释

说明:单行注释使用双斜杠//表示。我们一般用于常量、变量等的定义。

语法:

// 单行注释

示例:

//预处理指令,引入的标准输入输出库
#include <stdio.h>

int main()
{
    //打印信息到控制台
    printf("hello world!]n");
}
多行注释

说明:多行注释使用斜杠星号/*...*/表示。他可以占用多行代码,但不能嵌套。我们一般用于函授,文件头说明

语法:

/*
要注释
的代码
*/

示例:

//预处理指令,引入的标准输入输出库
#include <stdio.h>


/*
	主函数
*/
int main()
{
    //打印信息到控制台
    printf("hello world!]n");
}

注意:有多行注释衍生出一直更为细致的注释,我们称之为文档注释

示例:

//预处理指令,引入的标准输入输出库
#include <stdio.h>


/**
 *	主函数
 *  @author 作者
 *  @parm 参数 
 *  @return 返回值
 *  ...
 */
int main()
{
    //打印信息到控制台
    printf("hello world!]n");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值