自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (30)
  • 问答 (6)
  • 收藏
  • 关注

原创 C语言---安全函数

在C语言中,安全函数是针对传统标准库函数在内存和字符串操作中缺乏边界检查而设计的增强版本,旨在减少缓冲区溢出、未初始化变量访问等常见安全漏洞。C11 标准引入了一些安全函数,也称为 Annex K 标准库函数。这些安全函数主要是标准字符串和内存操作函数的增强版本,通过增加参数(如缓冲区大小)来提供更好的错误检测和处理。安全函数在 Visual Studio 等编译器中得到较好的支持,但在一些较老版本的编译器中可能不可用,需要注意兼容性。

2026-01-26 21:49:00 267

原创 win11查看内存条信号

使用"win + R",输入powershell。右键单击下侧任务栏,打开"设备管理器"

2026-01-26 21:30:53 27

原创 win11系统查看设备配置

点击WIN按键,搜索"系统",选择下方的"系统信息"。点击"系统",可以看到很多配置相关的内容。点击"此电脑" -> “属性”按下按键"win + R"存在大量系统相关配置。输入"winver"

2026-01-26 20:59:33 148

原创 win11系统分盘2

更改驱动号和路径:可以修改磁盘的名称。但是无法修改C盘名称。每个电脑起码有一个C盘。右键点击windows按键如下,选择磁盘管理。压缩卷即将磁盘缩小,对于空间可分配至其他卷。下图选项中,输入压缩空间量即想要缩小的空间。删除卷:删除当前磁盘,C盘无法删除。当出现未分配空间时,可设置新建卷。右键点击你需要修改的磁盘。扩张卷:增加磁盘内存容量。压缩卷:缩小磁盘内存容量。

2026-01-26 20:33:51 31

原创 Vs Code创建---代码统计工具

VS Code Counter 是 Visual Studio Code 的一款扩展工具,主要用于统计源代码的物理行数、空白行数和注释行数,支持多种编程语言,并提供了灵活的统计方式和可视化报告功能。

2026-01-21 22:12:33 588

原创 C语言---命令行参数

在C语言中,命令行参数是通过main函数的两个特殊参数传递的:int argc和char *argv[]。这两个参数允许程序在启动时接收来自命令行的输入。

2026-01-20 22:53:48 390

原创 C语言---未定义行为

1、标准定义:C标准(如C11)明确列出“未定义行为”清单(如访问无效指针、修改字符串常量)。标准仅规定“此类行为无要求”,不约束编译器实现。2、编译器自由:不同编译器(GCC、Clang、MSVC)对UB的处理可能截然不同。例如:悬空指针访问:可能崩溃、返回垃圾值,或“巧合”正确。整数溢出:有符号整数溢出是UB(如int x=INT_MAX;x++;),编译器可能直接删除此类代码(因“结果无意义”)。

2026-01-19 22:15:07 757

原创 C语言---内存管理

C语言的内存管理是开发者必须掌握的核心技能,其灵活性也带来了复杂性。

2026-01-19 21:16:41 499

原创 C语言---可变参数

C语言中的可变参数(Variadic Functions)允许函数接受不定数量的参数,这一特性在需要处理动态数量参数的场景中非常实用,例如格式化输出函数(如printf)、日志记录、数学计算等。C语言通过<stdarg.h>头文件提供了一套宏来支持可变参数的处理。

2026-01-18 15:00:29 533

原创 C语言---递归

递归是C语言中处理自相似问题的强大工具,但需谨慎设计基例和递归步骤,避免栈溢出和性能问题。在深度可控或问题天然递归(如二叉树遍历)时优先使用;若深度过大或性能敏感,可考虑迭代或动态规划优化。

2026-01-14 22:27:49 397

原创 C语言---错误处理

使用枚举或宏定义错误码,避免硬编码(如-1、1等)。方法适用场景优点缺点返回值检查简单函数调用明确、直接需手动检查每个调用errno +错误码标准库函数错误与系统集成好 多线程不安全断言调试阶段逻辑错误快速定位问题发布版本需禁用信号处理严重运行时错误(如段错误)捕获致命错误复杂,可能掩盖问题深层嵌套错误恢复跨函数跳转易导致资源泄漏,代码难维护。

2026-01-13 22:54:48 854

原创 C语言---强制类型转换

在C语言中,强制类型转换(Type Casting) 是显式将一种数据类型转换为另一种数据类型的操作,通过在表达式前添加目标类型的括号实现。它是C语言类型系统的核心特性,但需谨慎使用以避免未定义行为或数据丢失。

2026-01-13 21:05:52 776

原创 C语言---头文件

/ main.c#include "myheader.h" // 引入自定义头文件");return 0;头文件中定义全局变量可能导致重复定义错误。// 声明// 定义标准库头文件用尖括号 < > 包含(如 #include <stdio.h>),编译器从系统路径查找。自定义头文件用双引号 " " 包含(如 #include “myheader.h”),编译器先从当前目录查找。

2026-01-13 08:03:48 636

原创 C语言---预处理器

这是预处理器最强大的功能,用于定义常量和宏函数。#define PI 3.14159 #define MAX_BUFFER 1024 // 注意:预处理器不会检查类型,只是简单的字符串替换⚠️ 重要陷阱:必须给参数和整体加括号!错误写法:#define SQUARE(x) x * x如果调用 SQUARE(2+3),展开后变成 2+3*2+3 = 11(而不是25)。正确写法:((x) * (x)) 能保证运算优先级正确。用于取消已定义的宏。

2026-01-12 23:30:39 768

原创 C语言---缓冲区

可以在 fopen 之后、进行任何读写之前,修改缓冲模式。// 自己分配一块内存作为缓冲区// 设置为行缓冲,使用我自己的数组作为缓冲区// 或者完全禁用缓冲fclose(fp);return 0;1、打开 (fopen):系统分配一块内存(通常4KB/8KB)。2、写入 (fprintf/fwrite):数据先拷贝到这块内存,不触及磁盘。3、刷新 (fflush/\n/满/fclose):系统调用 write() 将内存数据拷贝到内核,内核再写入磁盘。

2026-01-12 22:45:21 652

原创 C语言---文件读写

C语言的文件读写(File I/O)是C标准库(stdio.h)提供的一套强大功能,用于在程序和外部文件(如txt、dat、csv等)之间传输数据。以下是C语言文件操作的核心知识体系,包含基本概念、常用函数、操作模式和完整示例。

2026-01-11 23:26:20 985

原创 C语言---printf函数使用详细说明

printf 函数的格式控制字符串是 C 语言中最强大也最复杂的工具之一。其完整语法格式为:%[标志][最小宽度][.精度][长度修饰符]类型符。

2026-01-11 18:53:25 688

原创 C语言---输入和输出

C 语言的输入输出(I/O)并不是语法本身的一部分,而是通过标准库 <stdio.h> 中的函数实现的。

2026-01-11 18:39:19 368

原创 C语言---typedef

为了提高代码的可移植性,常用 typedef 定义固定长度的整型。这样在不同位数的 CPU 上,只需修改 typedef 的定义,而不需要改动逻辑代码。函数指针的原始语法非常晦涩,使用 typedef 可以极大提高可读性。// 定义一个名为 Handler 的别名,它是一个函数指针// 该函数接收两个 int 参数,返回一个 int// 使用别名定义函数指针变量return 0;

2026-01-11 18:14:17 288

原创 C语言---无名位域

在 C 语言中,**无名位域(Unnamed Bit-fields)**是指在结构体中定义位域时,不给该成员命名。它主要有两种用途:填充(Padding)和强制对齐(Alignment)。

2026-01-11 17:54:59 420

原创 C语言---位域

位域(Bit-fields)是 C 语言中一种特殊的数据结构,允许在结构体中以“位”为单位来指定成员所占用的内存空间。这在处理底层硬件寄存器、协议解析或需要极度节省内存的场景中非常有用。

2026-01-11 17:16:48 325

原创 C语言---共用体

/ 先定义模板,再声明变量int i;float f;// 定义模板的同时声明变量int i;float f;// 使用 typedef 起别名int i;float f;} Value;Value v1;// 直接使用别名声明。

2026-01-07 23:02:01 398

原创 C语言---结构体

使用关键字 struct 来定义结构体。// 姓名int age;// 年龄// 成绩// 注意分号不能掉。

2026-01-03 21:03:19 416

原创 C语言---字符串

在C语言中,有两种主要方式来定义字符串:这是最常见的定义方式。编译器会自动在末尾加上 \0。1.2、字符串常量(指针方式)使用指针指向一个存放在只读数据区的字符串。注意:通过这种方式定义的字符串通常是只读的,修改它的内容可能会导致程序崩溃。作用:C语言不记录字符串的长度,只靠 \0 来判断字符串在哪里结束。内存占用:字符串 “Hi” 包含 2 个可见字符,但实际在内存中占用 3 个字节的空间(‘H’, ‘i’, ‘\0’)。C语言在标准库 <string.h> 中提供了一系列处理字符串的函数:(1)

2026-01-03 20:37:35 383

原创 C语言---函数指针和回调函数

在C语言中,函数名本身就代表了该函数在内存中的起始地址。函数指针就是一个变量,它存储了这个地址。返回值类型 (*指针变量名)(参数类型列表);注意:(*指针变量名) 必须加括号,否则会变成一个返回指针的函数声明。示例代码// 1. 定义一个函数指针 p,指向返回值为int,有两个int参数的函数// 2. 将 add 函数的地址赋给 pp = add;// 3. 通过指针调用函数(两种写法均可)// 常用写法// 显式解引用写法return 0;

2026-01-03 17:00:31 369

原创 C语言---指针

定义指针时,使用 * 符号表示该变量是一个指针。int a = 10;// 普通整型变量int *p;// 定义一个指向整型数据的指针变量 pp = &a;// 将变量 a de 地址赋值给 p(& 是取地址符)效率:传递指针比传递大型结构体或数组快得多(只需复制 4 或 8 字节的地址)。动态性:支持在运行时分配内存。底层操作:可以直接访问硬件地址或处理复杂的链表、树等数据结构。

2026-01-03 13:59:28 424

原创 C语言---枚举变量

枚举通过关键字 enum 定义,其成员默认从 0 开始递增。先定义枚举类型,再定义枚举变量enum DAY {定义枚举类型的同时定义枚举变量enum DAY {省略枚举名称,直接定义枚举变量enum {你可以手动指定枚举成员的值。如果某个成员未指定,它将比前一个成员大 1。SLEEP = 1,STOP, // 自动变为 6ERROR = -1。

2026-01-03 13:40:05 464

原创 C语言---数组

定义数组时需要指定元素类型和元素个数。// 1. 定义但不初始化(值是随机的)// 2. 定义并完全初始化// 3. 部分初始化(剩余元素自动补 0)// 结果为 {1, 2, 0, 0, 0}// 4. 自动推断长度// 编译器自动设长度为 3。

2026-01-03 12:38:16 322

原创 C语言---局部变量、全局变量、静态局部变量、静态全局变量

在C语言中,这四种变量的主要区别在于作用域(Scope)、生命周期(Lifetime)以及存储位置。

2026-01-03 12:11:24 393

原创 C语言---作用域

在C语言中,作用域(Scope)指的是程序中变量、函数等标识符可见并可被访问的区域。

2026-01-03 12:04:47 466

原创 python---新年烟花

2026新年快乐烟花演示。

2026-01-01 21:57:26 310

原创 python---pip路径问题

博主发生改错误的原因是,python从3.7版本升级到3.11版本,python的系统环境路径不会自动发生变化,即使将原来的路径进行修改。删除python,删除系统环境变量,重启电脑。再次重新下载所有环境。从报错学习可以看出,pip工具在寻找可执行文件时发生错误。

2026-01-01 18:24:32 142

原创 python---进程

Python中的多线程无法利用多核优势(参考文章python—线程),如果想要充分地使用多核CPU的资源,需要使用多进程。进程是操作系统进行资源分配和调度的基本单位。每个进程都有自己独立的内存空间、代码段、数据段和堆栈段。进程的启动和销毁的代价是比较大。进程间的任务切换也是开销最大的。

2025-12-30 23:15:21 998

原创 python---锁、可重入锁

释放锁时,计数器减1。5、锁的释放是在 outer() 函数的 with lock 块结束时才发生的,而 outer() 又在等待 inner() 返回。4、由于这个锁已经被当前线程(即自己)持有了,inner() 的 with lock 会一直阻塞,等待锁被释放。Lock(普通锁):同一个线程在已经获得锁的情况下,不能再次获取,否则会导致死锁。RLock(可重入锁):同一个线程在已经获得锁的情况下,可以再次获取,不会死锁。3、inner() 退出 with 块,释放锁,计数器从 2 变回 1。

2025-11-23 20:52:12 448

原创 python---线程

Python的线程虽然是真正的线程,但解释器执行代码时,有一个GIL锁:Global Interpreter Lock,任何Python线程执行前,必须先获得GIL锁,然后,每执行100条计步(ticks)(也可以认为是虚拟机指令或字节码),解释器就自动释放GIL锁,让别的线程有机会执行。这个GIL全局锁实际上把所有线程的执行代码都给上了锁,所以,多线程在Python中只能交替执行,即使100个线程跑在100核CPU上,也只能用到1个核。线程是无序的,启动了线程A,然后紧接着启动了线程B。

2025-11-23 20:44:00 934

原创 AT命令的由来

由于这些命令通常以“AT”开头,所以被称为AT命令,这个“AT”前缀告诉设备要执行一个命令。由于贺氏调制解调器在早期非常成功和流行,其他制造商为了兼容性,也纷纷采纳了这一命令集。目前在市场上有很多通用的DTU模块都使用AT命令,无论是BLE、BT、LOAR、4G、WIFI,很多都使用AT命令。对于DTU模块而言,AT命令只是串口通信中包的格式,那为什么不是其他的字母开头,而是AT呢?模块都使用AT作为命令前缀,是因为AT命令源于调制解调器早期发展,“AT”表示“Attention”(注意)。

2025-11-08 09:33:47 208

原创 python---生成器

生成器是一个返回生成器迭代器的函数,它使用yield语句而不是return来返回值。当生成器函数被调用时,它返回一个生成器对象,但不会立即执行函数体。

2025-10-22 21:31:57 283

原创 C语言---函数

1、函数声明(函数原型)作用:告诉编译器函数的名称、返回类型和参数列表。这样编译器在遇到函数调用时,就知道如何检查调用的正确性。格式:返回类型 函数名(参数类型列表);注意:参数名在声明中是可选的,但类型必须写明。也是合法的声明。位置:通常在源文件的开始处或头文件(.h)中。2、函数定义作用:包含函数实际的代码实现。格式:即上面介绍的完整格式,包含函数体。3、函数调用作用:在程序中使用函数的功能。格式:函数名(实际参数);过程:程序执行到函数调用时,会暂停当前函数。

2025-10-16 21:53:55 796

原创 python---迭代器、可迭代对象

定义一个类来实现迭代器协议(即实现iter() 和next() 方法)。例子:创建一个返回数字平方的迭代器# __iter__ 必须返回迭代器对象,因为自己就是迭代器,所以返回 self# 使用print(num)# 输出: 1, 4, 9, 16概念描述关键点可迭代对象数据的容器/来源有iter() 方法,可被 for 循环遍历迭代器迭代的执行者有iter() 和next() 方法,惰性、一次性关系for 循环通过调用可迭代对象的iter。

2025-09-21 19:43:59 952

原创 C语言---goto语句

goto 语句是一种无条件跳转语句,它用于将程序的控制流无条件地转移到同一函数内的某个指定标签(Label)处。它的存在历史悠久,在早期的结构化编程语言中很常见,但在现代编程实践中,由于其可能带来的问题,通常不建议使用。

2025-09-14 12:03:36 1244

tesseract-ocr-w64-setup-v5.1.0.20220510

学习OCR入门的小伙伴们不需要到国外下载了,直接站内下载即可。如果没有积分可联系博主,博主上线看到会给你私法。

2025-10-15

mingw64 win64环境下的C语言编译器

MinGW-w64 (Minimalist GNU for Windows) is a free and open-source software development environment for creating Windows applications. It provides a complete runtime and toolchain for compiling and linking code on Windows using the GNU Compiler Collection (GCC).

2025-07-16

python 3.11.11

博主本人使用win11 64bit,可正常使用,到官网下载过忙,于是上传到CSDN。如果没有分,也可以私信博主发你邮箱,不过博主只有下班有空发。

2025-06-22

Silicon connection.apk

Silicon Labs(芯科科技有限公司)开发的安卓平台蓝牙连接APP。

2025-06-09

微生物学-引物设计-‌Primer Premier 5.0‌

Primer Premier 5.0 是一款专业的引物设计软件,广泛应用于分子生物学、基因工程和PCR相关研究领域。以下是关于该软件的详细介绍: 1. 主要功能 引物设计: 自动或手动设计PCR、测序、突变实验所需的引物。 支持多重PCR引物设计,可同时优化多对引物。 引物分析: 评估引物的特异性、退火温度(Tm值)、GC含量、二聚体形成、发卡结构等关键参数。 数据库整合: 支持从NCBI等数据库直接导入序列,并自动比对分析。 高级优化: 提供“最佳引物筛选”功能,根据用户设定的参数(如长度、Tm值范围)推荐最优引物。 可视化工具: 图形化显示引物在模板序列上的结合位置、扩增产物长度等。 2. 核心优势 精准性: 采用算法确保引物特异性,避免非特异性结合。 用户友好: 界面直观,适合初学者和高级用户。 多场景支持: 适用于常规PCR、实时定量PCR(qPCR)、克隆、定点突变等实验。 3. 适用领域 分子生物学研究:基因克隆、突变分析。 医学诊断:病原体检测、遗传病筛查。 农业生物技术:转基因作物开发。 4. 系统兼容性 支持Windows操作系统(如Win 7/10,部分版本可能需兼容模式运行)。 较老版本(5.0)可能不兼容最新Mac系统。 5. 注意事项 版本更新: 后续版本(如Primer Premier 6.0或更高)功能更强大,建议关注升级。 替代工具: 类似软件包括NCBI Primer-BLAST、Oligo等,可根据需求选择。

2025-05-11

微生物学-引物设计-DnaMan

DnaMan 是一款功能强大的综合性分子生物学软件,主要用于 序列分析、引物设计、多序列比对、进化树构建 等任务,广泛应用于分子生物学、生物信息学和遗传学研究。以下是关于 DnaMan 的详细介绍: 1. 主要功能 (1)序列分析与比对 多序列比对(MSA):支持 ClustalW、Muscle 等算法,可视化比对结果。 序列编辑:提供序列修剪、反向互补、翻译(DNA→Protein)等功能。 同源性分析:计算序列相似性,识别保守区域。 (2)引物设计 PCR 引物设计:自动优化引物 Tm 值、GC 含量、二聚体等参数。 探针设计:适用于 qPCR、FISH 等实验。 限制性酶切位点分析:帮助选择合适的酶切位点用于克隆实验。 (3)进化分析 系统发育树构建:支持 NJ(邻接法)、ML(最大似然法)、MP(最大简约法) 等算法。 进化树可视化:可调整分支、颜色、标签等,导出高质量图片。 (4)其他实用功能 开放阅读框(ORF)预测:识别基因编码区。 蛋白质二级结构预测:如 α-螺旋、β-折叠分析。 SNP 分析:检测单核苷酸多态性位点。 2. 与 Primer Premier 5.0 的比较 功能 DnaMan Primer Premier 5.0 主要用途 多序列比对、进化分析、引物设计 专注于 PCR 引物设计 引物设计 支持 PCR、qPCR、探针设计 主要针对常规 PCR 引物优化 多序列比对 支持(ClustalW、Muscle) 不支持 进化树构建 支持(NJ、ML、MP 方法) 不支持 序列编辑 提供翻译、反向互补等工具 功能较少 用户界面 较复杂,适合高级用户 更简洁,适合初学者 适用场景: 如果只需要 PCR 引物设计,Primer Premier 5.0 更简单高效。 如果需要 多序列比对、进化分析、ORF 预测等综合功能,Dn

2025-05-11

ARM.CMSIS.5.6.0

ARM.CMSIS.5.6.0

2024-07-14

ARM.CMSIS.5.6.0

ARM.CMSIS.5.6.0

2024-07-14

Nordic8.32.1

Nordic的nrf28532芯片的8.32.1版本pack安装包;下载来自官网,学习视频为B站的青风电子。

2024-07-14

STM32CubeMx V6.0.0版本

STM32CubeMx V6.0.0版本

2024-06-18

java8版本,下载STM32Cubmx时需要的java环境

里面有两个exe文件,随便安装哪个都可以,我用的是新的那个,就是名字里带7的。

2024-06-18

FlyMcu,STM32的串口烧录工具,可编程芯片内容

FlyMcu,STM32的串口烧录工具,可编程芯片内容

2024-06-18

sscom5.13.1

免费开源串口,欢迎大家来下载。

2024-06-15

Wireshark4.2.5,抓包工具站内下载

Wireshark4.2.5,抓包工具站内下载

2024-05-30

Beyond Compare 免费绿色免安装,下载即用

Beyond Compare 免费绿色免安装,下载即用

2024-05-28

vscode安装包,windows版本

vscode安装包,windows版本

2024-05-17

sourceinsight下载安装包资源

sourceinsight史上最佳代码阅读工具,可以自动的查看到一个函数或者变量的调用位置

2024-05-17

python3.7.9

python3.7.9

2024-05-17

Api-Fox,类似于PostMan的软件

Api-Fox,类似于PostMan的软件

2024-05-17

source Tree,git仓库图形化界面

source Tree,git仓库图形化界面

2024-05-17

Git Bash下载包、下载之后也可以有Git GUI

Git Bash下载包、下载之后也可以有Git GUI

2024-05-17

VMware-workstation 17.0pro版本,虚拟机在线下载

VMware-workstation 17.0pro版本,虚拟机在线下载

2024-05-17

XCOM免费串口助手,大学生最爱,界面非常友好

XCOM免费串口助手,大学生最爱,界面非常友好

2024-05-12

MDK511,这里面包含了STM32的包和和谐软件、还有STLINK的驱动

MDK511,这里面包含了STM32的包和和谐软件、还有STLINK的驱动

2024-05-10

keil的和谐软件,亲测5.11、5.36都可以用的

keil的和谐软件,亲测5.11、5.36都可以用的

2024-05-10

文件搜索软件-everything

文件搜索软件-everything

2024-05-10

史上最强卸载软件-geek,绿色免安装

史上最强卸载软件-geek,绿色免安装

2024-05-10

jlink-windows-V698

jlink-windows-V698

2024-05-08

keil5.36版本站内下载资源

keil5.36版本站内下载资源

2024-05-08

mqtt.fx客户端软件

模拟mqtt客户端的软件

2024-05-06

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

TA关注的人

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