
C/C++
学习、笔记、知识点
IoT_Joker
记性不好,写下来不容易忘
展开
-
OLED屏幕应用实验
一、介绍OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(OrganicElectroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。二、实验材料OLED显示屏:驱动器型号:使用MCU控制OLED本质上是MCU与屏的驱动控制器进行通信,本项目中OLED的原创 2020-11-08 19:03:35 · 2450 阅读 · 0 评论 -
多进程实现
一、进程三种状态1.就绪状态(Ready)当进程已分配到除CPU以外的所有必须的资源,只要获得处理机便可以立即执行,这时的进程状态就被称为就绪状态。2. 执行状态(Running)当进程已获得CPU,其程序正在CPU上执行,此时的进程状态被称为执行态。3. 阻塞状态(Blocked)又称为等待、挂起状态。正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件有很多种,例如,等待I/O完成、申请缓存区不能满足、等待条件(信号)等。4. 状态转换处原创 2020-10-24 10:11:43 · 612 阅读 · 0 评论 -
<cctype>库的使用
头文件:#include <cctype>包含了一些实用的字符处理函数1.bool isalnum( char c )如果是字母或数字,则返回true;如果不是,则返回false。2.bool isalpha(char c)检查字符c是否是字母。如果是,则返回true;如果不是,则返回false。4.iscntrl()检查c是否是控制字符。控制字符是不占用显示器上打印位置的字符(这与可打印字符相反,用isprint检查)。对于标准ASCII字符集(由“C”语言环境使用),控制字符是原创 2020-09-20 15:33:52 · 259 阅读 · 0 评论 -
[Linux、C++]线程常用方法
一、概念先了解一下进程,进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。而线程通常叫做 “轻量级进程”,一个进程可以有多个线程,它和同进程中的其他线程共享进程空间(堆代码、数据、文件描述符、信号等),只拥有自己的栈空间,关系如下图示例。线程也主要呈现三种状态:运行态、阻塞态、就绪态。在同一个进程下,每个线程都有独立的ID,一般用tid表示。二、线程实现在c++11引入了一个多线程类std::thread,使用时需包含头文件<thread>1、创建原创 2020-09-07 18:08:15 · 478 阅读 · 0 评论 -
[Linux]C++sleep操作
①头文件包含 unistd.h②秒级延时sleep(1)③微妙级延时usleep(1000000)注:区分大小写原创 2020-09-07 11:30:46 · 664 阅读 · 0 评论 -
make工程管理
make工程管理一、概述实际项目开发中,源码文件数量都不会只有少数几个。如果一个由上百个文件的代码构成的项目在编译过一遍之后,若只对一个或少数几个文件进行了修改,再从头到尾将每一个文件都重新编译是个比较繁琐的过程。为此,引入了make工程管理器的概念,工程管理器指管理较多的文件,它是自动管理器能根据文件时间自动发现更新过的文件而减少编译的工作量(类比软件的编译功能),同时make也是一个命令(可执行程序),当使用make命令时,默认的操作对象是同路径下的名为Makefile的文件。同时通过读入Makef原创 2020-09-06 00:51:54 · 1519 阅读 · 1 评论 -
vector使用方法
目录一、vector概念二、使用方法1、头文件2、初始化3、读取元素4、插入、赋值元素一、vector概念vector是一种可存放任意类型(类型声明时指定)、自行扩展(加倍方式)、连续存储的容器,类似于可存放任意类型动态数组。二、使用方法1、头文件#include <vector>有时需要用到算法库#include <algorithm>2、初始化vector的元素类型不仅仅可以是int,double,string,还可以是结构体,但是要注意,结构体要定义为全局原创 2020-08-23 19:01:17 · 797 阅读 · 0 评论 -
C语言代码简化技巧(一)
先来看这段代码,函数功能返回非负整数n的阶乘,要求返回双精度。double fact( int n ){ double s=1; int i; if(n==0) { return 1; } else { for(i=1;i<=n;i++) { s=s*i; } } return s;}结果正确,但过程似乎太长,有没有不想看的感觉,那来原创 2020-08-22 00:51:58 · 2463 阅读 · 0 评论 -
git学习笔记
目录一、创建版本库提交文件... 2二、掌握库的状态查看修改... 3三、版本查看与回退... 4四、工作区和暂存区... 6五、修改、撤销、删除... 7六、远程仓库... 9七、分支... 12一、创建版本库提交文件进入一个文件夹,准备初始化版本库(已安装git)git init创建一个文件如:test.c提交test.cgit add test.c简单解释一下git commit命令,-m后面输入的是本次提交的说明...原创 2020-08-15 23:39:32 · 300 阅读 · 0 评论 -
动态规划算法
在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。基本思想问题的最优解如果可以由子问题的最优解推导得到,则可以先求解子问题的最优解,在构造原问题的最优解;若子问题有较多的重复出现,则可以自底向上从最终子问题向原问题逐步求解。使用条件通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同原创 2020-07-26 18:50:19 · 152 阅读 · 0 评论 -
C语言四种常用指针形式
1.数组指针本质:指针 形容:指向数组的指针//数组的操作:核心是针对元素的形式:数组的元素类型 *指针变量名;eg:char a[10];char *p;p = a;//指针指向数组的首元素 int b[2][5]; int (*w)[5];//指针,指向类型:int [5] //指向的数组元素类型应该是int [5] ---> 可以用来指向一个二维数组 w = b;//使用指针w指向二维数组b 二维数组指定元素的方式: ①a[i][j] ②*(a[i] +原创 2020-07-18 01:06:57 · 5280 阅读 · 0 评论 -
C++比C多了什么(二)
1.6 函数重载1.6.1 函数重载的概念一个函数名可以对应多个函数体(多个接口),--------->函数重载对功能相近的函数,写成函数重载1.6.2 函数重载的作用可以使一个函数在不同的条件下,执行不同的功能,提高了函数功能性避免为多个功能相近但是不同代码起名出现名称冲突1.6.3 构成函数重载的条件1)函数名相同2)函数的参数不同(参数的类型 ,参数的位置,参数的个数),参数名不是构成函数重载的条件3)函数的返回值不是构成函数重载的条件1.6.4 函数重载的执行原理在原创 2020-07-05 20:15:18 · 769 阅读 · 0 评论 -
C++比C多了什么(一)
C++新特性补充:C++提供控制输出数据的格式需要包含 iomanip.hdec 转换位十进制数输入/输出hex 转换位十六进制数输入/输出oct 转换为八进制数输入/输出setw(int) 设置输出的宽度(类似C中对齐方式)setprecision(int) 设置浮点数输出的有效数字位数setfill(char) 设置填充字符1 输入/输出流流是字符集合或数据流的源原创 2020-07-05 20:14:23 · 1311 阅读 · 0 评论 -
C语言杂项
全局变量和局部变量生存周期:从定义位置开始到该变量被释放作用域:变量的有效作用范围定义位置:函数体内 函数体外存储区域:静态区 栈区 堆区 代码常量区全局变量: 生存周期:从定义位置开始到文件结束 作用域:定义该变量的整个文件 定义位置:函数体外,经常定义在主函数的上方 存储区域:静态区 ---- 自动申请,自动释放局部变量: 生存周期:从定义位置开始到定义它的函数结束 作用域: 定义该变量的函数体内 定义位置:函数体内 存储区域:栈区 --- 变量先入后出 当全局变原创 2020-07-05 20:00:07 · 395 阅读 · 0 评论 -
C语言取整
使用floor函数。floor(x)返回的是小于或等于x的最大整数。如: floor(10.5) == 10 floor(-10.5) == -11使用ceil函数。ceil(x)返回的是大于x的最小整数。如: ceil(10.5) == 11 ceil(-10.5) ==-10floor()是向负无穷大舍入,floor(-10.5) == -11;ceil()是向正无穷大舍入,ceil(-10.5) == -10fix朝零方向取整,如fix(-1.3)=-1; f原创 2020-06-30 20:08:06 · 635 阅读 · 0 评论