自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 3分钟学会钉钉线上教学【学生端】教程

1.打开老师发送的微信链接2.选择我是学生,填写学生真实姓名,然后填写家长联系方式,然后点击下一步!3.滑动滑块,接受验证码,然后填写验证码,然后点击申请加入4.打开电脑软件“钉钉”,就已经进入了班级群5.等待上课时间到,由老师发起上课邀请,点击接受邀请即可6.等待老师上课即可7.每次课后,老师会讲上课录像分享在钉钉群内。...

2021-01-27 17:23:25 7326

原创 无捆绑绿色安装金山打字通教程

一、下载软件下载链接:https://dalin7.lanzous.com/iTXoEkpujqf二、安装软件1.打开下载下来的安装包,如图所示2.选择下一步3.选择我接受4.取消勾选,然后点击下一步5.选择安装目录(不建议安装在C盘),然后点击下一步6.点击安装7.等待安装进度完成8.取消所有勾选,点击下一步9.再次取消所有勾选,点击完成10.经过以上步骤,金山打字通软件安装完成!...

2021-01-23 10:08:51 6924 3

原创 信息学奥赛开班必备

一、DEV-C++下载链接该链接为DEV-C++5.11版本软件下载地址:https://dalin7.lanzous.com/i6i3zeb二、DEV-C++安装步骤1.双击打开下载好的Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe文件2.加载完成后,选择OK3.选择I Agree选项4.选择Next >5.选择Install6.等待安装完成后,点击Finish7.将滑条拖动至最上方,选择简体中文/Chinese,

2020-08-19 11:04:29 608

原创 五分钟看懂前缀和与差分

一、前言本文主要简单介绍一下前缀和与差分两个内容,主要讲解前缀和与差分的定义,作用和求法三个方面。因为我们一般认为差分是前缀和的逆运算,所以往往将此两个内容放在一起学习,固此文也按照该模式讲解。二、前缀和定义:前缀和是指某序列的前n项和对于前缀和的使用,一般基于一维数组或二维数组,我们一个一个来看:一维数组:基于一维数组的前缀和就是原数据数组的前n个元素的和//设原数组为aint a[100];//设前缀和数组为sint s[100];根据定义可得:s[i]=a

2020-05-27 23:01:16 3400 7

原创 “瞩目”安装和使用教程

1.进入“瞩目”官网:https://zhumu.com/;进入后点击上方“下载”选项2.根据自己电脑操作系统版本选择对应版本的客户端3.下载完成后双击打开客户端,等待进度条加载完成。4.点击“注册”选项5.在弹出的“注册”网页中,按照要求填写即可,没有问题后点击“注册完成”。要牢记注册手机号和密码。6.注册完成后,关闭该网页,打开刚才的客户端界面,然...

2020-02-12 21:23:13 16581 4

原创 使用STM32的USART1仿写AT处理

本人才学浅陋,如有不足还请大家指正代码中包含了个人常用的一种初始化方法,自己感觉移植性和可调试性还不错AT命令查找部分使用了之前我写的博客的SHELL框架USART部分使用了野火例程中的部分程序main.c#include "init.h"static _Init g_intBuf[]={USART_Config,NULL}; //其他的初始化函数依次添加int ma...

2019-07-12 17:01:49 448

原创 TCP与UDP的区别以及创建网络连接的一般步骤

一、TCP协议与UDP协议的区别TCP和UDP是传输层的两种不同的协议。UDP的实现相较于TCP更加简单。 TCP是基于连接的可靠的数据传输,不会丢失数据,有三次握手的过程,但是连接过程需要消耗大量系统资源。 UDP是基于数据包的不可靠的数据传输,没有校验,没有三次握手的过程,消耗资源少,速度更快,但会丢包。二、TCP网络连接的一般步骤服务端:创建一个套接字(socket(2))...

2019-05-17 16:19:24 2023

原创 内核驱动中断编程顶半部和底半部(下)

一、底半部实现机制之tasklet方法①tasklet是基于软中断实现的,其优先级高于进程而低于硬件中断,同样不能做休眠操作。②内核描述tasklet的数据结构目前主要关注两个成员:func和datafunc:指向的函数即为延后处理函数,形参unsigned long是要传递的参数data:给延后处理函数传递的参数③使用tasklet实现底半部编程的大体步骤总结...

2019-05-16 13:08:28 268

原创 内核驱动中断编程顶半部和底半部(上)

linux系统中,任务可以分为两大类:中断和进程(线程)。中断又可分为硬件中断(外设触发)和软中断(软件调用swi指令触发),所以任务也可以细分为三类:硬件中断(有与其对应的中断处理函数)、软中断(有与其对应的软中断处理函数)和进程(有对应的代码段)。但是,不管是什么任务,想要运行,就必须先获取CPU的资源。所谓的任务优先级就是用来衡量一个任务获取CPU资源的能力,优先级越高,获取CPU资源的...

2019-05-15 10:23:21 311

原创 volatile关键字的认识和理解

volatile关键字主要用来修饰一个变量,主要是告诉编译器这个变量不要去优化。 编译器的优化,在大多数情况下,可以极大的提升程序执行的效率,比如当读取一个变量时,为了提高读取速度,编译器进行优化时有时会先把变量读取到一个寄存器中,以后,再读取变量值时,就直接从寄存器中读取。但是某些特殊情况下,变量的值会被意外的改变,而往往这些情况是编译器意料不到的,所以,就会取...

2019-05-09 14:46:49 136

原创 提高代码安全性——MISRA工业标准C语言编写规则

Rule1:不得使用三元操作符(? : )。Rule2:不得残留被注释掉的废代码。Rule3:所有标识符不超过31字符。(建议采用驼峰式或下划线式书写方式)Rule4:不同名空间中的变量名不得相同。Rule5:不得使用char, int, float, double, long等基本类型,应该用stdint.h中定义的类型显示表示类型的大小,如uint16_t、int32_t等。...

2019-05-08 16:44:48 811

原创 linux通配符,元字符,转义符使用总结

1.通配符通配符总结 符号 作用 备注 * 匹配0个或者多个字符 *通配的内容可以是任意个数的字符,也可以一个也没有 ? 匹配任意单个字符 ?匹配的内容只能是一个任意字符 [ ] 匹配“[”和“]”之间的某一个字符 如[0-9]可以代表0-9之间的任意一个数字,[a-zA-Z]可以代表a-z和A-Z之间的任意一个字母,字母区分大小...

2019-05-06 14:43:44 443

转载 ls命令和find命令通配符和双引号的使用区别

ls -l ab*find . -name “abc*”这里的*都是shell的文件通配符,包括 * ? []首先文件通配符和正则表达式含义是不同的。最大的差别在于:1."*" 在正则表达式中表示前面的字符重复任意次数,所以表示任意字符串".*", shell通配符中* 就表示任意字符串2. ".“在正则表达式中是任意一个字符,在通配符中没有其他任何含义,在通配符中”?"表示一个任意...

2019-05-06 10:56:15 2365

原创 无法安装libncurses5-dev解决方法

我使用的环境是ubuntu18.04 的64位系统,因为要配置内核源码,所以需要使用“make menuconfig”,结果遇到这个问题经过百度查阅后,发现使用此命令需要安装libncurses5-dev这个软件于是联网下载出现了缺少一个依赖libtinfo-dev此后,查阅相关资料后找到了https://packages.ubuntu.com/bionic-updates/l...

2019-05-05 15:42:19 20725 2

原创 linux系统(X86)存储内存布局

参数和环境区:程序执行的时候,命令行参数通过两个入口参数传递给main()函数,第一个参数 int argc表示命令行参数的个数,第二个 char argv[] ,是一个指向命令行参数的指针数组,每个命令行参数都是以'\0'结尾的字符串。栈区:用来存放程序中的动态局部变量(不包括static修饰的局部变量,这类变量存储在数据段);函数参数按照从右往左的顺序依次入栈,而函数调用结...

2019-04-29 17:40:42 684

原创 linux四种修改环境变量的方法与对比

方法一:通过设置终端变量修改export PATH = $PATH:/usr/loca/bin//设置完以后可以通过echo $PATH来查看配置结果生效方法:立即生效有效期限:临时改变,只对当前终端有效,当前终端关闭后就会恢复原有的PATH配置用户局限:仅对当前用户有效方法二:通过修改~/.bashrc终端配置文件vi ~/.bashrc//在最后一...

2019-04-29 10:38:37 328

原创 如何判断变量类型——右左法则

首先来看一个经典的例题:用变量a给出下面的定义a) 一个整型数b)一个指向整型数的指针c)一个指向指针的的指针,它指向的指针是指向一个整型数d)一个有10个整型数的数组e) 一个有10个指针的数组,该指针是指向一个整型数的。f) 一个指向有10个整型数数组的指针g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数h)一个有10个指针的数组,该指针指向一...

2019-04-28 14:58:37 323

原创 五分钟明白static和const关键字

static关键字类型名称 作用域 生命周期 默认初始值 全局变量 当前文件和其他文件(extern) 整个程序 0 局部变量 当前函数 整个定义的函数 乱数 static 全局变量 当前文件(其他文件extern也不可以) 整个程序 0 static 局部变量 当前函数 整个程序 0 ...

2019-04-28 14:25:32 192

原创 运算符优先级和结合性整理

优先级 运算符 含义 结合 方向 1 ()、[ ]、->、. 圆括号、数组元素下标、指向结构体成员、引用结构体成员 自左 向右 2 !、~、++、--、*、&、sizeof 逻辑非、按位反、增1、减1、间接寻址符、取地址符、字节运算符 自右 向左 3 *、/、% 乘、除、取余 自左 向右 4 ...

2019-04-28 11:38:56 1655 2

原创 占位符整理

占位符 作用 %d 整形输出(int) %u 整型输出(unsigned int) %hd short %hu unsigned short %ld long %lu unsigned long %o 以八进制形式输出整数 %x 以十六进制输出整数,或输出字符串的地址 %c或%hhd char,输出一个...

2019-04-28 11:30:39 567

原创 32位/64位系统数据类型大小比较

数据类型 32字节数 64位字节数 取值范围 bool 1 1 true/flase char 1 1 -128~127 unsigned char 1 1 0~255 short 2 2 -32768~32767 unsigned short 2 2 0~65535 ...

2019-04-28 11:29:00 476

原创 结构体大小与字节对齐

1.明确一个宏定义#pragma pack(n) n=1, 2, 4, 8, 16, 32, ....该宏是用来设置对齐模数,当不写入n,#pragma pack()这种情况是设置为默认字节模数注:32位系统默认字节模数是4,64位系统默认字节模数是82.成员字节偏移在结构体每个成员变量字节偏移的计算中,取对齐模数和变量本身大小中小的那个例:①将字节模数设置为4...

2019-04-28 11:24:50 672

原创 结构初始化的四种方法

//结构体原型typedef struct { int a; int b; int c;}AA;1.一般初始化法AA S1={1,2,3};2.先定义后初始AA s2;s2.a=1;s2.b=2;s2.c=3;3.指定式初始化法AA s3={ .a=1, .c=3};注:此种初始化方法,在linux...

2019-04-28 10:15:48 497

原创 define宏使用方法总结

1.普通用法(简单的文本替换)例如:#define N 10#define PI 3.142.结合运算符实现简单功能例如:① 计算数组元素个数#define ARR_SIZE(n) sizeof(n)/sizeof(n[0])②获得两个数中最大的那个#define MAX(a,b) ((a) > (b) ? (a) : (b))注:一定考虑到运算...

2019-04-27 17:47:08 371

原创 ARM内容总结学习

ARM基础几种常见的嵌入式处理器 PowerPC处理器 飞思卡尔MCP系列[军工,通信] DSP处理器 TI(德州仪器, 达芬奇系列(DSP核+ARM核,视频处理),OMAP系列(ARM核,手机)) FPGA处理器 Xilinx(赛灵思,ZYNQ系列(FPGA核+ARM核),算法处...

2019-04-26 11:39:12 384

原创 Makefile编写学习

一、基本内容1.功能:指定编译规则,将来程序编译按照规则进行,本质就是一个文本文件2.语法:核心要义:目标:依赖1 依赖2 依赖3 ...依赖n (TAB)规则 //依赖文件通过规则生成目标文件;必须是TAB注:规则可以理解为编译命令例如:vi hello.cvi Makefilehello:hello.c gcc hello.c -o hel...

2019-04-16 19:36:03 291

原创 SHELL编程框架学习

框架伪代码typedef struct { //表征命令结构体char *name;void (*func)(void);}_cmd; _cmd cmd_buf[16]= //此为结构体数组,存储所有被表征的命令{ {"ls",cmd_ls},{"pwd",cmd_pwd},};_cmd *find_cmd(char *usr_cmd) //usr_c...

2019-04-16 15:23:36 190

原创 linux之GDB调试的基本使用

一、GDB介绍GDN是一套字符界面的程序集,可以用在Linux上调试C和C++程序。二、GDB主要功能1.在程序中设置断点,当程序运行到断点处可以停止2.跟踪某个变量,也可以打印或者监视某个变量,并将其值显示出来3.可单步执行代码4.监控线程切换三、测试代码#include <stdio.h>#include <stdlib.h>int...

2019-04-16 11:33:24 438

原创 QT学习——父窗口,信号和槽机制

一、父窗口(容器窗口)1.概念:创建控件时可以指定停靠在父窗口上,如果没有指定,则飘在外面形成独立的窗体,父窗口本质也是图形控件,常用于表示父窗口类主要包括如下三个:QWidgetQDialog(对话框)QMainWindow(主窗口)注:QWidget和它的所有子类都可以作为父窗口,但是常用的父窗口类只有上面三个参考代码:#include <QApplicat...

2019-03-27 10:11:58 580

原创 sqlite数据库学习

一、数据库(sqlite)1.数据库简介1)概念:数据库是指以一定方式存储在一起,且能为多个用户共享,具有尽可能小的冗余特性,是与应用程序彼此独立的数据集合。2)常见数据库Oracle,DB2,SqlServer,Myql等2.sqlite数据库1)安装sudo apt-get install sqlite3 //在线安装sudo dpkg -i sqlit...

2019-03-27 09:58:58 252

原创 QT学习——Qt工具介绍,Qt助手使用,第一个Qt程序,Qt字符串和字符编码

一、Qt主要工具介绍1)qt助手(assistant)2)qt构建器(qmake)3)qt设计师(designer)4)qt转换器(uic)5)qt资源编译器(rcc)6)qt元对象编译器(moc)//处理语法扩展7)qt创造器IDE(qtcreator)二、Qt助手的使用例如:了解QApplication类的功能和作用1)先看第一句话,了解该类的功能,在点击more...

2019-03-15 16:17:00 4040

原创 C++学习——多态

二十二、多态1.虚函数覆盖(函数重写),多态的概念如果将基类中的成员函数声明为虚函数,那么其子类中具有相同原型的成员函数就也是虚函数,并且可以对基类的版本形成覆盖,即函数重写。这时,通过指向子类对象的基类指针,或者引用子类对象的基类引用,调用虚函数,实际被执行的将是子类中的覆盖版本,而不再是基类中原始版本,这种语法现象称为多态。class Base{ virtual boid...

2019-03-13 09:35:46 163

原创 C++学习——继承

二十一、继承1.继承的概念:通过一种机制表达类型之间共性和特性的方式,利用已有的数据类型来定义新的数据类型,这种机制就是继承人类:姓名、年龄、吃饭、睡觉 学生类:姓名、年龄、吃饭、睡觉、学号、学习 教师类:姓名、年龄、吃饭、睡觉、工资、讲课 ------------------------------------------- 人类:姓名、年龄、吃饭、睡觉 学生类继承...

2019-03-08 15:14:50 325

原创 C++学习——操作符重载

二十、操作符重载1.基本概念操作符重载就是一些具有特殊名字的函数,使用“operator#”表示,通过重载可以定义“#”符号的功能。例如:复数“x+yi”(1+2i)+(3+4i)=(4+6i)2.双目操作符,+,-,*,.......①表示的结果是右值,不能对表达式结果再赋值②左右操作数既可以是左值,也可以是右值③两种实现方式:1)成员函数形式(左调右参)形...

2019-03-07 15:33:19 982

原创 C++学习——拷贝构造,拷贝赋值,静态变量,单例对象,成员指针

十七、拷贝构造和拷贝赋值1.浅拷贝和深拷贝1)如果类中包含指针形式的成员变量,缺省的拷贝构造函数只是复制了指针本身,而没有复制所指向的内容,这种拷贝方式称为浅拷贝2)浅拷贝会导致不同的对象之间的数据共享,如果数据在堆区,析构函数还会引发“double free”的错误,导致进程终止,因此必须自己定义一个支持复制指针所指向内容的拷贝构造函数,即深拷贝参考代码:#includ...

2019-03-06 11:37:14 505

原创 C++学习——初始化表,this指针和常函数,析构函数

5.初始化表1)语法class 类名{ 类名(形参表):成员变量1(初值),成员变量2(初值),...{}};2)多数情况下,使用初始化表和在构造函数中对成员变量进行初始化操作,并没有太大的区分,两种形式可以任选,但是有些特殊的场景需要使用初始化列表:3)必须显示使用初始化列表的场景①如果有类类型的成员变量(成员子对象),而该类又没有无参构造(必须有参构造),则必...

2019-03-05 15:09:11 1544

原创 C++学习——类型转换,类和对象,类的定义和实例化

十一、类型转换1.隐式转换//1char c = 'a';int i = c; //隐式转换//2int func(void){ char c = 'a'; return c; //隐式转换}//3void func(int i){}char c = 'a';func(c); //隐式转换2.显示转换1)C++兼容C中强制类型转换...

2019-03-04 10:03:16 366

原创 C++学习——布尔型,操作符别名,函数和引用

六、C++的布尔类型(bool)1.bool类名是C++中的基本数据类型,专门负责表示逻辑值:真/假注:C语言的C99标准里加入了布尔类型2.bool类型内存占一个字节,1表示true,0表示false3.bool类型的变量可以接收任意类型表达式的结果,其值非0则为true,0则为falsebool func(){ return true/false;}4.插...

2019-02-28 16:50:48 2752 1

原创 C++学习——基础,名字空间,结/联/枚,字符串

一、C++语言概述面向对象的语言二、第一个C++程序1.vi first.cpp两种编译方式:1)g++ first.cpp2)gcc first.cpp -lstdc++2.文件扩展名1)xx.cpp2)xx.cc3)xx.C4)xx.cxx建议使用第一种扩展名写法:.cpp3.头文件`#include &lt;&gt;iostrea...

2019-02-27 16:15:46 250

原创 ARM汇编指令学习总结

ARM指令影响CPSR的三种终极情形:"目标寄存器":暂存运算结果的寄存器,离指令最近的寄存器1.指令后面加s,并且目标寄存器是pc,不仅仅实现一个跳转还要实现一个状态的恢复(cpsr=spsr)movs pc, lr 此指令做两件事:1)pc=lr,结果实现一个返回跳转2)cpsr=spsr,结果实现一个状态的恢复 2.指令后面加s,但是目标寄存器...

2019-02-27 10:30:09 4441

中国电子学会等级考试scratch一级上课教辅材料

资料已排版,可直接印刷成册。内涵理论知识,精选真题五套,仿真模拟题五套。

2022-11-16

全国青少年软件编程等级考试(scratch)一级保过模拟题【5套】

内含【5套】全国青少年软件编程等级考试(scratch图形化编程)一级模拟试题,内容贴合大纲,将5套掌握ok必定能过!

2020-12-04

基于51单片机的八位抢答器.zip

该源工程是基于51单片机的八位抢答器程序设计,是51课程节课完成的项目设计,现分享给大家。

2019-07-18

笔_面试题总结.pdf

个人整理的很多常见的常考的笔试题,其中囊括了一些理论题和编程题等题型。

2019-07-18

空空如也

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

TA关注的人

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