- 博客(276)
- 资源 (13)
- 收藏
- 关注
原创 C语言指针—实数取整
C语言字符指针—实数取余。问题: 已知一个字符串表示一个实数(不超过100位),请输出其整数部分,且输出不含前导0,但如果该整数为0,则输出0举例:0012350.1000 变为 1235使用到了字符数组 指针,利用指针来进行简化。
2023-02-20 23:21:15
1740
原创 C语言指针—实现数组逆序的二种方法
1. 设立中间量进行交换,这种方法需要使用一个中间变量,逐个交换数组的前半部分和后半部分,直到交换完整个数组。2. 指针进行交换。这种方法只需要两个指针,一个指向数组的第一个元素,一个指向数组的最后一个元素,然后逐个交换它们指向的元素,直到交换完整个数组。
2023-02-17 09:18:30
6026
原创 用多种指针方法访问数据元素(数组),实现逆序输出
C语言指针-用多种指针方法访问数据元素,实现逆序输出总结有四种引用数组元素的方法1. 数组名/下标法 a[i]2. 数组名/偏移量 *(a+i)3. 指针/偏移量 *(ptr+i)4. 指针/下标法 ptr[i] / *ptr[i]
2023-02-16 15:00:17
1090
原创 mac电脑中配置vscode+git配置码云github同步
mac中配置vscode以及用git配置远程仓库进行同步.windows也是这样的
2023-02-06 10:04:55
5897
原创 预处理/宏定义/头文件(main)/内存(sizeof)对齐/位段 深度剖析
本节主要深度剖析一下预处理和里面的宏定义以及代码编写的一些固定格式的原理。然后介绍预处理的三种作用形式——1.宏定义#define 2. 文件包含#include3. 条件编译#ifdef endif等其他:介绍main函数的参数含义#pragma预处理等(内存对齐 pack)#符号在宏定义中的作用以及重要的
2023-01-05 11:34:04
2029
2
原创 1 数据结构 绪论(时间空间复杂度)
绪论:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C语言的书写规范理解算法五个要素的确切含义;时间空间复杂度
2022-12-20 00:45:48
1045
原创 C语言基础—指针(地址引用、指针数组、二次指针、多维数组指针、指针常量)
本章主要讲解指针的基本定义和指针的传递、偏移。后面继续讲解指针数组和多维指针、二级指针. 指针类型的总结 比如常量指针和变量指针. 区分指针常量和常量指针. 以及 多维指针, 比如指向多维数组的指针等知识点:- 指针的定义和指针分类- 各类指针的字节长度取决于系统位数- 指针的传递(值传递和引用(地址传递))- 指针的偏移(自增自减号)- 指针数组的应用- 指针动态内存申请- 字符指针和字符数组的初始化和易错点- 易错点:指针变量指向常量区数据不可修改- 二次指针&传递- 指针/常量
2022-12-19 00:20:26
1409
原创 C语言基础—运算符及优先级
本章主要讲解运算符的优先级和结合顺序知识点:1. 运算符分类,记忆了解13种运算符2. 注意运算符的易错点3. 运算符的优先级
2022-12-15 21:59:24
2627
原创 C语言基础—输入输出原理
本章主要讲解输入scanf和输出printf的一些基础知识和注意事项。 知识点: - 输入函数scanf,gethar,gets、getch、getche等 - 输出函数printf、putchar、puts等 - scanf的字符集,控制字符 - printf的精度修饰符和最小字段说明符 - 缓冲区的分析:行缓冲、全缓冲、无缓冲 - scanf、getchar、gets、getche、getch等缓冲区类别和原理以及特性 - 清空缓冲区的方法
2022-12-14 23:50:28
1661
原创 C语言基础—数据类型和规范
本章主要讲解了C语言的数据类型和规范使用。知识点如下:1. 数据类型和关键字图示(记忆)2. 常量和变量,主要有常量的表示规范和变量的命名规范3. 整数类型4. 浮点型5. 字符型和字符串型的区别对比和使用不同(ASCII码表),以及字符串常量
2022-12-12 15:56:42
1053
1
原创 软工概念总结
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。这里主要讲解大学时候学习的软工基本知识以及一些基本UML画图。......
2022-08-30 09:51:31
911
原创 QT—3D绘图
使用OpenGL绘制图形介绍着色器例子QOpenGLWidget中使用OpenGL绘制图形绘制多边形使用顶点数组使用缓存绘制彩色3D图形1为图形设置顶点颜色2.实现3D效果纹理贴图
2022-08-29 10:10:26
13336
5
原创 QT—状态机框架
QT-状态机框架概念创建状态机在状态机中使用动画1默认动画2.检测状态中的所有属性都已经被设置3动画结束前退出状态会发生什么状态机的其他特性1.为状态分组来共享切换2.使用历史状态来保存或者恢复当前状态3.使用并行状态来避免组合爆炸4.检测复合状态的结束信号5.无目标切换6.事件、切换和守护7.使用恢复策略自动恢复属性...
2022-08-07 00:02:32
3321
1
原创 QT—图形视图
图形视图框架的结构场景视图图形项图形视图框架的坐标系统和事件处理坐标系统1.图形项坐标2.场景坐标3.视图坐标4.坐标映射例子场景背景图片会随着图形项的不同而改变位置? (场..事件处理和传播例子(放大和缩小视图,旋转视图)例子2 (添加事件,-一些按键函数)形视图框架的其他特性(效果)图形效果例子按键判断实现效果动画、碰撞检测和图形项组1.动画2.碰撞检测3.图形项组打印和使用OpenGL进行渲染1.打印2.使用OpenGL进行渲染窗口部件、布局和内嵌部
2022-07-21 10:50:20
2763
4
原创 嵌入式基本工具概念和板子认识
板子的名称工程目录文件标准外设库(人家编好的用)标准源码结构图:libraries创建工程模板下载函数包新建文件夹新建工程给Group添加文件固件库添加头文件所在目录配置全局宏定义变量更改main.cProteus和keil使用Proteus 8keil mdk5仿真Proteus与keil联合仿真......
2022-07-14 00:09:26
2340
1
原创 QT—绘制其他问题
前面讲到的所有绘制操作都是在重绘事件处理函数 paintEvent()中完成的,它是QWidget类中定义的函数。一个重绘事件用来重绘一个部件的全部或者部分区域。下面几个原因中的任意一个都会发生重绘事件:大部分部件可以简单地重绘它们的全部界面,但是一些绘制比较慢的部件需要进行优化而只绘制需要的区域(可以使用来获取该区域),这种速度上的优化不会影响结果。Qt也会通过合并多个重绘事件为一个事件来加快绘制,当函数被调用多次,或者时,那么Qt就会合并这些事件成为一个事件,而这个事件拥有最大的需要重绘的区域。不会立
2022-07-04 09:32:16
665
原创 QT—双缓冲绘图
双缓冲(double-buffers)绘图,就是在进行绘制时,先将所有内容都绘制到一个绘图设备(如 QPixmap)上,然后再将整个图像绘制到部件上显示出来。使用双缓冲绘图可以避免显示时的闪烁现象。
2022-07-03 23:55:22
2239
1
原创 Qt—绘制其他东西
前面我们不是学过了绘制图形Qt—2D绘图—1基本图型绘制与填充现在我们学习下绘制其他2D东西1 绘制文字除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::fontInfo()函数可以获取字体的信息,它返回QFontInfo类对象。绘制文字时会默认使用抗锯齿。新建Qt Widgets应用,项目名称为mydrawing2,基类选择QWidget,类名为 Widget。建立完成
2022-07-03 09:18:26
969
原创 UML与Rational Rose
采用b站动力节点视频学习:【动力节点】UML与Rational RoseUnified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不仅统一了 Booch、Rumbaugh 和 Ja
2022-06-20 10:14:09
2895
原创 内核中的互斥与同步
文章链接:从零开始学Linux驱动–(9)内核中的互斥与同步原子变量补充:原子变量操作的API:函数如下:罗列一些:atomic_read(v)atomic_set(v, i)int atomic_add_return(int i, atomic_t *v);int atomic sub_ return(int i, atomic_t*v);int atomic add negative(int i, atomic_t*v)void atomic_add (int i, atomic_t
2022-06-01 18:30:10
800
原创 Linux内核驱动—中断和时间管理
中断进入过程本章采用的目标板子是三星的Exynos4412使用的是4核的Cortex-A9,对应的中断控制器被称为GIC,相比于一般的中断控制器而言,其最主要的特点在于可以将一个特定的中断分发给一个特定的ARM核。但这并不是我们关注的重点,在后面的分析中,应该主要知道当中断发生后要如何调用驱动中的中断处理函数,以及在这个过程中所涉及的重要数据结构。整个过程中涉及较多的和体系结构相关的内容,主要体现在中断处理的前期阶段;为了更方便读者理解这部分内容,在下面的讨论中会重新改写这部分代码。汇编阶段的主要相关
2022-05-19 09:45:46
986
1
原创 异步I/O+异步通知
linux内核笔记(四)高级I/O操作(二)分析第一个代码:代码第50行 struct aiocb aiow, aior;定义了两个分别用于读和写的异步I/O控制块代码第56行到76行初始化了这二个控制块。memset(&aiow, 0, sizeof(aiow)); memset(&aior, 0, sizeof(aior)); aiow.aio_fildes = fd; aiow.aio_buf = malloc(32); strcpy((char *)aiow.a
2022-05-15 21:40:52
630
原创 I/O多路复用
阻塞型IO相对于非阻塞型IO来说,最大的优点就是在设备的资源不可用时,进程主动放弃CPU,让其他的进程运行,而不用不停地轮询,有助于提高整个系统的效率。但是其缺点也是比较明显的,那就是进程阻塞后,不能做其他的操作,这在一个进程要同时对多个设备进行操作时显得非常不方便。比如一个进程既要读取键盘的数据,又要读取串口的数据,那么如果都是用阻塞的方式进行操作的话,如果因为读取键盘而使进程阻塞,即便串口收到了数据,也不能及时获取。解决这个问题的方法有多种,比如多进程、多线程和I/O多路复用。在这里我们来讨论I/
2022-05-15 01:01:47
256
原创 非阻塞型I/O和阻塞型I/O
非阻塞型I/O和阻塞型I/O:非阻塞型I/O阻塞型I/O如果资源不可用,进程阻塞关于它的代码补充分析:wait_queue_head_t rwqh;wait_queue_head_t wwqh;增加了r读和w写的等待队列头代码init_waitqueue_head(&vsdev.rwqh);init_waitqueue_head(&vsdev.wwqh);初始化这二个队列头if (kfifo_is_empty(&vsfifo)) { if (fi
2022-05-13 18:26:42
396
原创 高级IO操作—ioctl设备操作
为了处理设备非数据的操作(这些可以通过read、write接口来实现),内核将对设备的控制操作委派给了ioctl接口,ioctl 也是一个系统调用,其函数原型如下。int ioctl(int d,int request,...);d是要操作文件的文件描述符,request 是代表不同操作的数字值,比如驱动可以规定0x12345678表示点灯,而0x12345679表示灭灯等。但是这个操作码,更确切地说是命令,应该具有一定的编码规则,这个我们在后面会介绍。...表示C语言中实参个数可变的.但在这里表示的
2022-05-12 22:18:34
2456
3
学生信息管理系统简易版(文件读写操作)
2023-04-25
C语言速记——基本内容
2022-10-02
linux用多线程同步方法解决睡眠理发师问题(Sleeping-Barber_Problem).pdf
2021-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅