嵌入式开发学习日志(C语言基础知识搭建) day2 持续更新中

发布时间:2026/7/23 4:22:11
嵌入式开发学习日志(C语言基础知识搭建) day2 持续更新中 一、C语言的优势1. 执行效率高 2. 可以控制操作硬件3. 资源开销小 4. 跨平台可移植性强、有行业基础二、C语言必要的学习内容1. 基本数据类型、表达式及运算符 2. 常用输入输出函数3. 流程控制分支结构、循环结构 4. 函数5. 数组 6. 指针 7. 构造数据类型8. 内存管理、位运算 9. 程序调试方法三、C语言的计算机原理1.计算机基本组成部分运算器、控制器、存储器、输入设备、输出设备运算器控制器》CPUGPU/NPU2.存储器内存掉电数据丢失、空间小、读写效率高、价格昂贵硬盘掉电数据不丢失、空间大、读写效率低cache高速缓存设备【1. 编译器编译的二进制指令集合存放硬盘2.当执行该二进制程序时该程序通过cpu被加载在内存中3.cpu通过总线访问内存中的数据并做运算和处理】3.计算机中数据的单位bit 位 0/1byte 字节计算机内存存储单位 8bits 1 bytekb 1024bytes 1kbmb 1024kb 1mbgb 1024mb 1gbtb 1024gb 1tb4. 进制转换二进制0 1八进制0 1 2 3 4 5 6 7十进制0 1 2 3 4 5 6 7 8 9十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f1二进制、八进制、十六进制转十进制规则对应位*对应位的权值累加求和2十进制转二进制、八进制、十六进制短除法要转数据 / 进制数取得的余数逆序3二进制转十六进制、八进制4个二进制位 转换 1个十六进制位3个二进制位 转换1个八进制位照8421编码方式转换四、基本数据类型、表达式及运算符1. C语言中的数据类型1)基本数据类型整数类型 字符类型 浮点类型 缺省类型空类型 void 泊尔类型c2)构造数据类型3)指针类型2. 整数类型1整数类型的分类有符号整形可以表示正数也可以表示负数最高位 符号位 0 正数 1负数其它位数据位无符号整形只能表示正数064位ubuntu系统下short 短整型内存中2字节unsigned short 无符号短整形最大值1111 1111 1111 1111 ---》2^16-165535最小值0000 0000 0000 0000 ---》0shortsigned short有符号最大值0111 1111 1111 1111 --》2^15-1 32767最小值1000 0000 0000 0000 --》-32768int 整形内存中4字节unsigned int 无符号整形最大值1111 1111 1111 1111 1111 1111 1111 1111 --》2^32-1 42亿最小值0000 0000 0000 0000 0000 0000 0000 0000 --》0intsigned int有符号短整型最大值0111 1111 1111 1111 1111 1111 1111 1111 --》2^31-1 21亿最小值1000 0000 0000 0000 0000 0000 0000 0000 --》-2^31 -21亿long内存8字节unsigned longint无符号长整形最大值2^64-1 最小值0signed longint有符号长整型最大值2^63-1 最小值-2^63关键字sizeof(数据类型/常量/变量);获取某种数据类型在内存中所占的字节数2整形数据在内存中的存储方式无符号整形原码补码原码有符号整形符号位数据位整数原码负数补码 补码 反码13整形溢出unsigned short 最大值1最大值1 -----最小值最小值-1 -----最大值3.字符类型用于表示字符的一种数据类型。char 字符类型内存1字节【ASCII转换标准规定了字符和整形数据之间的转换标准(输入man ascii查询ASCII码表)】char类型本质是一种整形。【unsigned char无符号字符形 最大值1111 1111 -----2^8-1255 最小值0000 0000 -----0 signed char有符号字符形 最大值0111 1111 -----2^7-1127 最小值1000 0000 ------2^7-128】4.浮点数类型用来表示小数的数据类型。单精度浮点型float精度范围6-8位内存中占的字节数4IEEE标准规定float类型在内存中以符号位(1bit)、指数位(8bits)、尾数位(23bits)的方式存储双精度浮点型double精度范围12-16位 内存中占的字节数8IEEE标准规定double类型在内存中以符号位(1bit)、指数位(11bits)、尾数位(52bits)的方式存储【注意 1. 浮点型数据在内存中存储时可能存在精度损失。】5. 缺省类型缺省类型空类型 void使用位置1. 函数的形参和返回值 不传递参数、不返回数据2. 指针 void * --》万能指针6. 泊尔类型逻辑类型 bool内存中1字节true/false1/0#include stdbool.h五、printf终端打印函数用法可以向终端打印出“”里面的内容当遇到%开头的格式控制符时将格式控制符换成逗号后面的值如printf(hello world\n);printf(%ld\n, sizeof(int));printf(int %ld\n, sizeof(int));printf(ch %c\n, ch);printf(f %f\n, f);printf(d %lf\n, d);%d ---以十进制整形数据int方式打印%ld ---以十进制整形数据long方式打印%c ---以字符方式打印%f ---以float类型控制打印%lf ---以double类型控制打