- 博客(273)
- 资源 (11)
- 问答 (2)
- 收藏
- 关注

原创 【精华】详解Qt中的内存管理机制
前言内存管理,是对软件中内存资源的分配与释放进行有效管理的方法和理论。众所周知,内存管理是软件开发的一个重要的内容。软件规模越大,内存管理可能出现的问题越多。如果像C语言一样手动地管理内存,一会给开发人员带来巨大的负担,二是手动管理内存的可靠性较差。Qt为软件开发人员提供了一套内存管理机制,用以替代手动内存管理。下面开始逐条讲述Qt中的内存管理机制。一脉相承的栈与堆的内存管理了解C语言的同学都知道,C语言中的内存分配有两种形式:栈内存、堆内存。栈内存栈内存的管理是由编译器来做的,栈上申请的内
2021-08-16 20:00:45
6534

原创 【GUI开发】图像处理类软件的浏览功能实现模型
图像处理软件包括但不限于:图片浏览器,2D地图浏览器、图片编辑器等软件。为了处理大分辨率图片,一般采用GDAL加载图像,GDAL可以动态加载图像的一部分,可以建立图像金字塔,优化加载速度。一般的图像处理软件都需要对加载的图像进行放大、缩小、平移操作。首先明确:放大是指图像细节增加,可见范围减少的一种浏览方式,缩小是指图像细节减少,可见范围增加的一种方式下面介绍如何实现。编写代码前,需要建立图像浏览所使用的观察模型。如下图所示:其中,显示窗口是指用于绘制当前浏览内容的窗口,观察区域是指,
2021-06-27 17:38:26
236
2

原创 【编译原理】二、理解BNF
总体理解一个源码文件本质上就是一棵树,即数据结构中的树。解析源码的本质就是将一维的字符串序列转换为一颗语法树。这个可以自己对着源码理解,代码中的缩进就是一种树层次的体现。BNF范式BNF范式本质上就是树形分解,很简单嘛。前端代码解析的难点就在于BNF,对于对数学不敏感的人来说,看到公式就很烦(像我一样)。那么我们就从计算机专业的角度来掌握它。产生式产生式就是将语法的分解规则表达出来的等式。如句子 = 主 + 谓 + 宾将语法规则描述出来是为了便于代码实现,便于计算,所以产生式可以看做
2021-01-24 11:15:31
22899
3

原创 Qt实现多屏幕多分辨率自适应
最近比较忙,这里仅大概描述一下我的实现思路。运行条件两个屏幕,分辨率不同。Qt软件问题提出前段时间写了一个软件,窗口内有自绘内容。自绘内容里面用的长度单位都是像素。可想而知,在开发者的电脑屏幕上大小都是符合要求的。到这一步都没问题。软件开发完成后发给客户,客户在他的电脑上运行,也没问题,毕竟分辨率差不多。偶然一次使用配有高分辨率显示器电脑运行软件,在4k屏下,软件出现了以下问题:整体尺寸和某些自绘内容(线条形状)变得很小,原因是屏幕分辨率升高了,像素更密集,相同个数的像素长度看起来更
2020-10-14 20:40:34
4113
2
原创 【AI】现阶段AI擅长解决哪些问题
以下内容来自于元宝:#mermaid-svg-DvadM4V6AtSN5Kjh {font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;color:#333;color:#333;fill:none;原始数据特征提取自动编码器重构误差分析异常评分。
2025-04-19 13:37:56
784
原创 谈谈对固件的初步理解
而单片机这种东西,我们在开发的时候,是需要频繁烧写程序的,所以单片机里的程序,相对于开发者来说,叫固件就不合适了,叫软件更合适。如果我们想要修改芯片内的程序,一般来说,需要用专门的工具,当然还要有新的程序,把新的程序烧写到芯片中替代老的程序的过程,叫“刷固件”。所以呢,一般这种专用芯片,在正常工作的情况下,芯片内的程序是不会被修改的,因为它对主控芯片的接口一般都是做一些数据交互,并没有提供更新芯片内部程序的接口。但是呢,技术在发展,有的芯片厂商为了使用方便,在已有通信接口的基础上,增加了直接刷固件的接口。
2025-04-16 00:37:56
310
原创 C/C++不透明指针
今天在ESP32编程中又看到了这个词,这个词出现在cursor回答中。它和头文件中的前置类型声明的原理一样,只不过惯用写法不太一样,了解就好。
2025-04-15 19:48:17
181
原创 SPI很多场景下是以半双工的方式工作
SPI(Serial Peripheral Interface)在协议规范层面被定义为全双工通信,但由于实际应用中的外设实现、硬件设计或协议限制,其工作模式可能表现出半双工特性。SPI协议通过独立的MOSI(主设备输出/从设备输入)和MISO(主设备输入/从设备输出)两条数据线实现双向数据传输15。例如,主机通过MOSI发送一个字节的每一位时,从机通过MISO返回对应位的数据,形成环形数据流15。协议优化设计 无 主设备发送填充数据以触发从设备响应(如读取ADC值时发送无效字节)67。
2025-04-07 16:13:53
324
原创 【深度学习】不管理论,入门从手写数字识别开始
通过第一个深度学习案例,能够总体掌握代码结构和流程。理论虽然还差很多,但是大体上能够对深度学习有大概的印象。深度学习大体上做的事情,就是从已有数据中发现规律,利用这个规律,再对新的输入数据进行响应,由经验数据预测/计算出新的结果。当已有数据非常非常多的时候,预测/计算的准确率理论上来说应该会越来越高,但是能够达到100%?我觉得只能是逼近100%,做不到100%。
2025-03-30 21:24:10
555
原创 gcc怎么禁用某个优化
arm-hisiv600-linux-g++: 错误: unrecognized command line option ‘-fnoaggressive-loop-optimizations’检查编译器版本:某些优化选项仅在较新 GCC 版本中支持(如 -fno-aggressive-loop-optimizations 需 GCC 4.8+);gcc -O2 -fno-unroll-loops -o program source.c # 在 O2 级别下禁用循环展开。// 禁止优化此变量。
2025-03-22 10:24:57
453
原创 关于转嵌入式的一点想法
一方面,我们要拥抱AI,利用AI带来的机会,提高个人的生产力,创业创新。为了稳住当前的工作,保证生活质量,我们需要提前规划,及时调整自己的技术路线,摒弃一些相对简单重复,技术含量不高的工作,要么转型项目管理,要么转向受AI影响较小的更底层的开发。当然,我个人也是对嵌入式技术栈很感兴趣,方向和机会很多,自己要多思考,做出更优的选择。普通人能做的只有拥抱AI,拥抱趋势。AI的发展,让软件开发的门槛越来越低了,软件开发人员的护城河即将被攻破,软件研发行业不再会像十几年前那么安逸了,传统红利已不复存在。
2025-03-22 10:02:50
186
原创 一句话解释闭包
lambda表达式是静态语言的技术词汇。它创建的函数,仅仅是函数,无法延长被捕获变量的声明周期。被引用捕获的变量,如果超出作用域销毁,则会出现访问错误。这根本上是静态语言和动态语言灵活性差异导致的。闭包是临时函数对象,此对象捕获的变量,会随着此对象的生命周期延长而延长。闭包是脚本语言/动态语言的技术词汇。技术本身没什么难的,有时候难理解是人为增加的难度。
2025-01-18 21:48:26
190
原创 【汇编】汇编编程中的指令传参方式
有的指令在调用时,虽然不需要操作数,但是它会默认使用某几个寄存器,调用时需要提前将寄存器填好参数值。,通过入栈出栈的方式传参,高级语言通常采用这种方式传参。这种方式需要访问主存,对效率有一定影响;汇编传参有几种方式,第一种是常见的。
2025-01-13 14:21:28
442
原创 【汇编】x86汇编编程寄存器资源心中有数
si,di:通用指针寄存器(常用组合ds:si,es:di)心中有数,写汇编程序时,才知道有什么可用。业务寄存器用于访问内存、参数传递、计算。ax,bx,cx,dx:通用数据寄存器。bp,sp:堆栈指针寄存器。
2025-01-09 14:46:14
466
原创 【Linux内核】Linux内核基本问题
如果你喜欢带着问题去学习Linux内核,那么你可以参考本文。本文由浅入深地列出了Linux内核中的基本问题域,帮助想要学习Linux的同学从总体上了解,Linux内核解决了哪些问题。
2025-01-09 13:37:40
164
原创 CPU底层编程基本逻辑
进行CPU进行系统编程,本质就是通过配置CPU寄存器,调用CPU硬件机制,实现软件功能的过程。说白了,寄存器就是CPU的配置项。和XML不同,XML是静态配置,寄存器需要动态配置。
2025-01-08 13:09:13
154
原创 【Linux内核】理解linux内核中的几种地址
Linux内核完全注释》这本书提到了几种Linux内核中的几种地址,实地址,有虚拟地址,逻辑地址,线性地址,物理地址。除了物理地址以外,其他几种容易弄混淆。这里做一下笔记,讲一下我的理解(以32位系统为例)。本文只是辅助梳理思路,抛砖引玉,如果想要掌握内存管理机制,绝对不能停留在这个水平,一定要看具体实现细节,这里推荐《Linux内核完全注释》,比很多资料强上不少。
2025-01-04 21:02:32
492
原创 【汇编】关于函数调用过程的若干问题
先进行栈清理工作,再执行ret返回调用者的代码继续执行。不可能先返回,如果先返回,那么后面的栈清理代码将无法执行。所以ret必须放在此函数最后执行。故pc必须先压栈,栈遵循先进后出,所以pc会最后出栈。
2024-12-25 21:54:49
273
谁能来打消我的忧虑??
2014-10-18
在别的地方弹出的系统菜单点击菜单项没有反应?
2014-09-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人