自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 C++嵌入式学习第十二天

结构:结构是由程序员自己设计的一种数据类型,用于描述一个事物的各项数据,由若干个不同的基础数据类型组成。设计结构:struct 结构体名{ 类型 成员名; ...};注意:一般结构体名首字母大写定义结构变量:struct 结构体名 变量名; 注意:定义结构变量时,struct不能省略定义初始化结构变量:struct 结构体名 变量名 = {v1,v2,v3...};根据成员的顺序进行初始化struct 结构体名 变量名 = {.成员名=v2,.成员名=v

2021-01-12 10:18:12 77

原创 C++嵌入式学习第十一天

预处理指令:程序员所编写的代码并不能被真正的编译器所编译,需要一段程序把代码翻译一下。翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以 # 开头的都是预处理指令。查看预处理的过程: gcc -E code.c 直接把预处理的结果显示到终端上 gcc -E code.c -o code.i 把预处理的结果储存到code.i文件中预处理指令的分类: #include 文件包含 #include <> 从系统指定的目录下查找并导入

2021-01-12 10:17:09 73

原创 C++嵌入式学习第十天

malloc内存管理机制:当首次使用malloc申请内存时,malloc会向操作系统申请内存,操作系统会直接给malloc分配33页(1页=4096字节)内存交给malloc管理。但是不意味着你可以越界访问,因为malloc可能会把使用权分配给“其他人”,这就会导致脏数据。每个内存块之间都会有一些空隙(4~12字节),这些空隙一些是为了内存数据对齐,其中一定会有4个字节是用于记录malloc维护信息,这些维护信息决定了下次malloc分配内存的位置,以及借助这个维护信息计算出每个内存块的大小,当这些信息

2021-01-12 10:16:20 70

原创 C++嵌入式学习第九天

什么是指针:​ 指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整型数据,代表了内存的编号,通过这个编号可以访问到对应的内存。为什么使用指针:​ 1、函数与函数之间是相互独立的,但是有些时候需要共享变量​ 传参是单向值传递​ 全局变量容易命名冲突​ 使用数组还需要传递长度​ 函数的命名空间是相互独立的,但是地址空间是同一个,所以指针可以解决这个问题​ 2、由于函数传参是值传递(内存拷贝),对于字节数

2021-01-12 10:15:31 74

原创 C++嵌入式学习第八天

复习:自定义函数:​ 1.函数声明:告诉编译器函数数的格式,方便编译器检查调用者的参数、返回值。​ 2.隐式声明:当函数调用前,没有声明和定义,编译器会猜测函数的格式,函数的形参会根据调用者提供的实参来猜测,返回值会猜测为int类型​ 3.函数定义:函数定义如果出现在函数调用之前,可以省略函数声明​ 4.函数传参:​ 1)值传递:普通变量 单向值传递 函数之间不能共享同名局部变量。​ 2)址传递:数组的长度会丢失,需要而外增加一个参数传递数组的长度,此时该数组就被两个函数共享

2021-01-12 10:13:57 101 2

原创 C++小项目--五子棋(Linux系统)

#include <stdio.h>#include <stdlib.h>int mx,my;//记录当前落子的坐标int cnt=0,cntt=0;//cnt 记录当前的落子的人 %2为0 是白子,cntt记录五子连珠的个数char arr[20][20] = { {'*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*'}, {'*','*','*','*','*'

2020-12-22 20:28:29 280

原创 C++嵌入式学习第七天

设计函数时的准则:​ 1.一个函数最好只解决一个问题,这样可以降低出错率,提高可读性。​ 2.最好不要依赖其他函数。(降低耦合性)​ 3.数据由调用者提供,返回结果给调用者。(提高通用性)。​ 4.要考虑调用者提供的非法数据,可以通过返回值的方式告诉调用者,或者把可能出现的情况通过注释的方式写明白。(健壮性)进程映像:​ 程序:储存在磁盘上的可执行文件(二进制文件、脚本文件)​ 进程:正在系统中运行的程序​ 进程映像:指的是进程内存的发布情况text 代码段:​ 储存

2020-12-22 20:24:03 69

原创 C++嵌入式学习第六天

进制转换:为什么要使用二进制、八进制、十六进制:​ 因为现在的cpu只能识别高低两种电流,因此只能对二进制数据进行描述。​ 二进制数据虽然可以直接被cpu计算识别,但是不方便书写、记录,所以把二进制的数据转换成八进制是为了方便记录在文件中。​ 随着cpu的不断的发展位数不断的增加,由早期的八位逐渐发展成现在的64位,因此八进制逐渐不能满足需求,所以发展出了十六进制,由于历史原因八进制还不能退出历史舞台(文件权限:rwx=4+2+1)十进制转换二进制:求余法:​ n

2020-12-22 20:22:58 82

原创 C++嵌入式学习第五天

数组:​ 什么是数组:相同类型变量的组合,是一种批量定义变量的方式​ 定义: 类型 数组名[];​ 使用:数组名[下标]; 数组的下标从0开始,范围为:0~数量-1;​ 遍历:与for循环配合使用,使用循环变量作为数组的下标​ 初始化: 类型 数组名[数量] = {1,2,3,4,5…}数组越界:​ C语言为了程序的运算效率不会检查数组的下标。​ 数组越界的结果:​ 1

2020-12-22 20:21:53 57

原创 C++嵌入式学习第四天

一、开关语句switch(n) //n可以是数值、表达式,运算结果必须是整型{case val: //val 必须是常量,如果val等于n,则打开开关…break; //关闭执行开关,swtich中不能与continue配合使用//如果所有的case 后面都有break,就形成了多分支结构default: //如果所有的case都没有匹配成功,则打开default执行开关,而且放在任何位置都一定会执行// a … b 表示一段范围,但是不推荐使用}练习1:输入一个月份,判断季

2020-12-10 19:52:01 42

原创 C++嵌入式学习第三天

一、第一个C程序:#include<stdio.h>//程序员所写的代码不是标准C代码,需要一段程序进行翻译成标准c代码,负责翻译的程序叫做预处理器,翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以#开头的都是预处理指令;// #include <xxx.h>:从系统指定的目录下加载xxx.h; #include"xxx.h ":先从当前目录下加载xxx.h,如果找不到再从系统的指定目录下加载xxx.h,适用于自己写的头文件;一般先加入(写)系统的头文件,再加入自己写的头

2020-12-09 20:14:05 125

原创 C++嵌入式学习第二天

行底模式下的操作:w 保存文档q 退出文档wq 保存并退出q! 强制退出x 保存并退出X 加密文档 输入两次密码,再保存退出就加密了解密: 行底模式输入 set key=注意:ZZ只能保存文件内容,不保存文件属性,但wq保存内容和属性!cmd 在文件中执行系统命令,并返回 例如:!ls/key 在文件中查找关键词key ,n向下查找,N向上查找%s/old/new 全部替换,把old关键词替换成newset nu 设置显示行号set nonu 设置隐藏行号

2020-12-08 20:12:32 191

原创 C++嵌入式学习第一天

day 1:分享代码的网站:GitHub , 码云总结知识点平台:CSDN,博客网笔试面试题:牛课网,PAT,力扣训练抖音有问题找:思否Linux系统介绍:​ BCPL --> new B --> c --> UNIX -->Minix​ 对硬盘的管理能力很强,所以它不需要分区,就一个根目录(/)​ / 根目录 所以文件都在一个目录下面​ /bin:储存系统命令(命令其实是一个个程序,使用命令

2020-12-07 19:14:28 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除