自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

原创 linux_服务端与客户端剖析

本文介绍了基于UDP协议的套接字编程实现,包括服务器端和客户端的设计。主要内容包括:1) 套接字的基本概念和类型(TCP流式套接字和UDP数据报套接字);2) 服务器端的实现,包括创建套接字、绑定地址、接收和发送数据的流程;3) 客户端的实现,包括初始化服务器地址、发送和接收消息;4) 日志系统的设计,支持不同级别的日志输出和多种输出方式。通过详细的代码示例和注释,展示了如何构建一个基本的UDP通信系统,包括错误处理、字节序转换等关键细节。该实现可用于构建简单的客户端-服务器通信应用。

2025-07-23 00:59:34 690

原创 Linux 自旋锁

本文介绍了Linux内核中的自旋锁机制。自旋锁通过"忙等待"(线程原地循环重试)而非休眠的方式实现同步,适用于锁持有时间极短的场景,避免了上下文切换的开销。文章详细分析了自旋锁的工作原理、Linux内核对其的优化(如抢占禁用、SMP支持等),以及使用时的注意事项:临界区必须简短、禁止递归加锁、区分中断上下文等。通过示例代码展示了自旋锁的实际应用,并与互斥锁进行对比,指出自旋锁适合短时操作而互斥锁适合长时任务。最后强调正确使用自旋锁的关键在于评估锁持有时间长短。

2025-07-19 20:51:11 696 4

原创 linux_线程同步

摘要:Linux多线程编程中,线程同步是解决共享资源访问冲突的关键技术。文章分析了竞态条件问题,并介绍四种主要同步机制:1)互斥锁实现独占访问;2)条件变量处理线程间等待/通知;3)信号量控制并发数量;4)读写锁优化读多写少场景。同时强调避免死锁、减小锁粒度等注意事项,帮助开发者在安全性和效率间取得平衡。(149字)

2025-07-17 17:45:54 752 10

原创 排序算法实战(上)

本文分享了两道经典排序算法题的解法。912题采用快速排序,通过随机选取基准值优化时间复杂度至O(nlogn)。75题使用三指针法,通过一次遍历将0、1、2分类排序,实现O(n)时间复杂度和O(1)空间复杂度。两个解法都避免了使用内置排序函数,针对不同特点的题目选择了最优算法,体现了排序算法的灵活应用,对提升算法能力很有帮助。

2025-07-15 20:26:59 360 5

原创 linux-线程互斥

这是因为 count++ 并非原子操作,当两个线程同时读取 count 的旧值、各自加1再写回时,就会出现“覆盖”现象——比如线程A和B同时读到 count=100 ,各自加1后写回,最终 count 只增加了1,而非预期的2。所有线程都能访问同一块内存(如 int mutex ), xchgb 让线程把“自己寄存器里的0”和“黑板上的mutex值”交换,本质是用硬件原子指令,实现“我要占锁”的宣告。- 操作完成后,线程“释放锁”( pthread_mutex_unlock ),让其他线程有机会获取锁。

2025-07-15 18:04:11 938 1

原创 力扣算法--数青蛙与外观数列问题

本文解析了LeetCode两道中等难度算法题。"数青蛙"(1419)通过哈希数组跟踪青蛙鸣叫状态,验证字符串是否由完整"croak"顺序组成并计算最少青蛙数量。"外观数列"(38)采用迭代法实现行程长度编码,通过双指针统计连续字符出现次数并生成描述字符串。两道题目分别考察字符串顺序校验和递归编码能力,体现了算法在字符串处理中的实际应用,有助于提升问题分析和解决能力。

2025-07-14 21:50:00 571 2

原创 Linux-线程控制

本文介绍了Linux线程管理的核心概念和操作。主要内容包括:1) pthread_join()函数的使用及注意事项,用于线程同步和资源回收;2) 线程退出的三种方式(return、pthread_exit()、pthread_cancel())及其区别;3) 线程间通信机制,包括通过指针传递自定义对象;4) 线程底层实现原理,涉及clone系统调用、TCB和TID;5) 分离线程的设置方法(pthread_detach());6) 线程私有化实现(__thread关键字)。文章通过代码示例详细说明了这些操作

2025-07-13 17:40:44 595 5

原创 linux_线程概念

Linux线程本质上是复用进程内核数据结构的轻量级执行流,虽实现方式特殊但功能完备。线程共享进程地址空间,切换效率高(无需重载页表等资源),创建成本低,能提升多核CPU利用率,但也存在同步复杂、健壮性差等缺点。Linux通过pthread库封装轻量级进程接口提供线程功能,编程时需注意线程安全与资源管理。线程崩溃将导致整个进程终止,体现了"进程资源容器,线程执行单位"的设计理念。

2025-07-12 22:16:15 545 7

原创 linux-进程信号的产生与发送

本文介绍了Linux系统中的信号机制及其应用。信号是进程间通信的一种异步通知方式,用于处理突发事件。文章首先阐述了信号的基本概念,包括信号的识别和处理能力要求,以及信号产生后的处理时机。接着详细说明了信号的三种处理方式:默认动作、忽略和自定义动作。通过分析常见信号如SIGINT、SIGTERM等,解释了其默认行为和应用场景。文章还探讨了信号的产生方式,包括键盘组合键、系统命令、异常和软件条件等。特别介绍了alarm系统调用的定时功能,以及信号退出类型term和core的区别。最后说明了云服务器默认关闭核心转

2025-07-09 23:56:59 826 11

原创 进程间的通信

进程间通信的核心是借助操作系统管理的共享资源打破进程隔离性,实现数据交互和协同工作。主要方法包括:1) 管道等文件级通信;2) SystemV IPC机制(消息队列、共享内存、信号量);3) 同步工具(互斥量、条件变量等)。其中共享内存是最高效的方式,通过shmget创建、shmat挂接、shmdt分离、shmctl管理生命周期,让进程直接访问同一物理内存。关键点在于:通信资源由OS统一管理,进程通过系统调用访问;需处理同步问题;IPC对象遵循SystemV/Posix标准;共享内存生命周期独立于进程。典型

2025-07-03 19:51:17 888 11

原创 位运算经典题解

本文解析了LeetCode三道位运算经典题目:位1的个数(191题)通过n&(n-1)技巧消除最右位1并计数;汉明距离(461题)利用异或后统计1的个数;比特位计数(338题)批量计算数字二进制中1的数量。这些题目都运用了n&(n-1)的核心技巧,展示了位运算在解决二进制统计问题中的高效性和灵活性,帮助读者掌握处理类似问题的通用方法。

2025-07-01 16:34:10 838 8

原创 前缀和 + 哈希表

本文介绍了利用前缀和与哈希表解决子数组相关问题的通用方法。通过分析力扣525、974、560三道题目,总结出解题步骤:1)将问题转化为前缀和条件判断;2)初始化哈希表(常需处理前缀和为0的情况);3)遍历计算前缀和,记录哈希表;4)利用哈希表快速查找满足条件的子数组。该方法将O(n²)复杂度优化至O(n),适用于求和、求余等各类子数组问题。掌握这一思路能有效提升算法解题效率,建议通过练习加深理解。

2025-06-28 21:24:54 912 6

原创 python基础

本文介绍了Python基础语法要点:1.变量无需声明类型,整数大小不受限;2.字符串可用单/双引号,支持相加合并;3.注释包括行注释(#)和块注释("""...""");4.格式化字符串用f前缀;5.input()返回字符串需转换;6.算术运算符包含//(向下取整);7.逻辑运算符为and/or/not;8.支持多元赋值;9.条件语句用if-elif-else结构,空语句需加pass。还提到type()查看类型、len()获取字符串长度等实用功能。

2025-06-26 00:08:05 186 8

原创 动,静态库

本文摘要: 文章详细介绍了静态库和动态库的设计与使用方法。静态库通过将多个源文件编译为目标文件并打包(如libmymath.a),需配合头文件使用,编译时需指定路径(-I)和库链接(-L -l)。动态库则需添加-fPIC和-shared选项生成共享库(如libmymath.so),运行时需解决路径问题。文中对比了三种静态库使用方式:指定路径、系统路径安装(可能污染系统)和软链接,并强调动态库的灵活性。最后通过全局变量验证执行结果,提供完整的Makefile示例。

2025-06-23 21:07:34 236 9

原创 linux文件管理

本文探讨了文件系统的核心原理与操作接口。主要内容包括:1) 文件由内容和属性组成,打开文件时属性加载到内存,通过进程管理;2) C语言文件操作接口如fopen的读写模式("w"覆盖/"a"追加)及路径处理;3) Linux系统调用open的底层实现,包括文件描述符、权限控制等;4) 访问文件的本质流程:通过文件描述符表映射到内核文件表项和inode,最终访问磁盘数据。文章对比了C标准库fopen与系统调用open的区别,并阐述了从用户空间到磁盘访问的三层映射机制。

2025-06-13 23:11:18 1388 19

原创 c语言(重点)

本文系统梳理了C语言核心知识点,涵盖指针与数组的深度解析、数据存储机制、编译链接过程等关键内容。重点剖析了数组指针与指针数组的区别,函数指针与回调机制的应用,以及结构体内存对齐规则。详细讲解了整数与浮点的存储格式(原/反/补码与IEEE754标准)、类型转换规则(提升与截断),以及预处理阶段(宏定义、文件包含、条件编译)的处理机制。最后完整呈现了从预处理到链接的编译全流程,包括中间文件生成、符号解析等关键技术环节,为深入理解C语言底层原理和高效编程提供了全面指导。

2025-06-09 19:39:24 1714 22

原创 Linux进程控制

本文摘要:本文系统探讨了Linux进程管理中的进程终止机制,主要内容包括:进程退出场景:分为代码正常运行完毕(结果正确/不正确)和异常终止三种情况,重点分析了异常终止的信号机制和退出码含义;2.进程退出方法:详细对比了return、exit和_exit的区别,通过实例展示exit会刷新缓冲区而_exit直接终止的特性;3.进程等待机制:阐述wait/waitpid解决僵尸进程问题的必要性,解析status参数的位结构(异常信号+退出码);4.程序替换原理:通过exec系列函数实现进程内容替换而不

2025-06-07 20:48:45 723 29

原创 Linux进程概念

在32位的地址和数据总线--->没跟总线会发出强信号(1)和弱信号(0)两种电信号,形成类似于二进制的信息,操作系统会根据数据导线传输的32信号访问内存中对应的地址,电信号共2^32种。

2025-05-30 22:48:38 1237 30

原创 算法刷题记录:滑动窗口经典题目解析

本文介绍了三道使用滑动窗口技巧解决的算法题。1) 1004题通过维护最多k个0的窗口寻找最长连续1序列;2) 3题利用哈希表记录字符频率,寻找无重复字符的最长子串;3) 1658题将问题转化为求特定和的最长子数组,通过窗口求和来求最小操作数。每道题都提供了详细的解题思路和C++实现,展示了滑动窗口在不同场景下的应用技巧,包括边界调整、条件维护和结果更新等关键步骤。这些例题充分体现了滑动窗口在处理子数组/子串问题时的高效性。

2025-05-28 23:07:54 1275 27

原创 C++ 输入输出流示例代码剖析

本文深入解析C++中自定义类型与输入输出流的交互实现,重点探讨了类型转换操作符、输入输出操作符重载技术,以及文件二进制和文本读写方式。通过A类、Date类的类型转换和流操作重载示例,展示了如何增强自定义类型的兼容性;在文件操作部分,详细比较了二进制读写的高效性与文本读写的可读性差异,并以ServerInfo结构体和ConfigManager类为例说明实际应用场景。这些技术广泛应用于网络配置、日志记录等开发需求,是C++数据处理能力的核心体现。

2025-05-24 23:04:34 1000 8

原创 C++ 内存管理与单例模式剖析

本文探讨了C++中特殊内存管理方式和单例模式的实现方法。首先介绍了HeapOnly类,通过私有构造函数和删除拷贝操作确保对象只能在堆上创建;其次讲解了StackOnly类,通过删除operator new强制对象只能在栈上分配。随后详细分析了单例模式的两种实现:饿汉模式在程序启动时即创建单例对象,实现简单但影响启动速度;懒汉模式延迟创建对象,但需处理多线程安全问题,并可通过GC类确保资源释放。这些技术为C++开发者提供了内存管理和设计模式的重要实践参考,需根据具体场景选择合适方案。

2025-05-24 15:48:49 1275 5

原创 C++ 类型转换

C++类型转换机制解析:从C语言到更安全的转换方式本文系统分析了C和C++中的类型转换机制。C语言提供隐式和显式两种类型转换,但存在可视性差、安全隐患等问题。C++为改进这些缺陷,引入了四种命名的强制类型转换操作符:static_cast用于相关类型转换、reinterpret_cast处理位模式转换、const_cast去除const属性、dynamic_cast实现安全的向下转型。文章还介绍了运行时类型识别(RTTI)机制,包括typeid运算符和decltype等特性。相比C语言的简单转换,C++的

2025-05-24 15:29:44 715 4

原创 C++智能指针

本文探讨了C++中的内存泄漏问题及其解决方案。内存泄漏发生在程序分配内存后未能正确释放,导致内存浪费和程序性能下降。文章通过示例代码展示了在异常处理不当或资源管理错误时可能发生的内存泄漏情况。为避免内存泄漏,建议采用RAII(资源获取即初始化)原则,使用智能指针如unique_ptr和shared_ptr来自动管理内存。unique_ptr通过独占资源并自动释放来防止内存泄漏,而shared_ptr通过引用计数机制共享资源,确保资源在不再被引用时释放。此外,文章还介绍了weak_ptr,它用于解决share

2025-05-23 17:13:01 1194 21

原创 深入探究C++11的核心特性

C++11标准引入了多项新特性,显著提升了语言的表达能力和开发效率。首先,统一的列表初始化扩展了花括号{}的使用范围,适用于所有内置和用户自定义类型,简化了初始化操作。其次,变量类型推导通过auto和decltype关键字,减少了代码冗余,提高了可读性。右值引用和移动语义优化了资源管理,减少了不必要的拷贝,提升了性能。此外,C++11还引入了lambda表达式,简化了匿名函数的定义,增强了代码的灵活性。新的类功能如默认成员函数、类成员变量初始化、以及强制生成或禁止生成默认函数的关键字,进一步增强了类的设计能

2025-05-22 18:44:33 1112 27

原创 布隆过滤器

布隆过滤器是一种高效的概率型数据结构,由Burton Howard Bloom在1970年提出,主要用于解决海量数据的存储和快速查询问题。它通过多个哈希函数将数据映射到位图结构中,实现高效的插入和查询操作。布隆过滤器的优点包括高查询和插入效率、节省内存空间、支持集合运算等,但也存在误判、无法获取元素本身和不支持直接删除等缺点。其应用场景广泛,如网页爬虫的URL去重、数据库中的数据判重和垃圾邮件过滤等。尽管有局限性,布隆过滤器在大数据处理等领域仍具有重要价值。

2025-05-19 17:16:41 1120 25

原创 深入理解位图(Bit - set):概念、实现与应用

位图(Bit-set)是一种高效的数据结构,特别适用于处理海量数据的存在性判断和统计。其基本原理是通过二进制位来表示数据的状态,1表示存在,0表示不存在。位图适用于快速查找、数据去重、统计、集合操作(如交集、并集)以及操作系统中的磁盘块标记等场景。通过C++代码示例,展示了位图的实现及其在快速查找、排序去重、集合操作和磁盘块标记中的具体应用。位图通过减少时间和空间复杂度,显著提升了数据处理的效率,是处理大规模数据时的有力工具。

2025-05-18 22:20:15 1357 29

原创 二叉树构造:从前序、中序与后序遍历序列入手

本文介绍了如何利用二叉树的遍历序列来构造二叉树,重点分析了LeetCode上的两道题目:从前序与中序遍历序列构造二叉树(题目105)和从中序与后序遍历序列构造二叉树(题目106)。通过这两道题,我们可以掌握利用不同遍历序列构建二叉树的方法。对于题目105,先序遍历的第一个元素是根节点,中序遍历中根节点左侧为左子树,右侧为右子树,通过递归构建整棵树。对于题目106,后序遍历的最后一个元素是根节点,同样通过中序遍历划分左右子树,递归构建。这两道题的核心思想是通过遍历序列确定根节点,划分左右子树,再递归构建,帮助

2025-05-18 15:35:29 1143 22

原创 哈希的原理、实现

哈希是一种在计算机科学中广泛应用的数据结构和算法思想,主要用于提高数据存储和查找的效率。本文详细探讨了哈希的基本原理、哈希函数的设计原则及常见类型(如直接定址法、除留余数法等),并介绍了哈希冲突的解决方法,包括闭散列(如线性探测和二次探测)和开散列(链地址法)。此外,文章还结合C++代码示例,展示了如何实现哈希表及其在unordered_map等关联式容器中的应用。哈希技术在海量数据处理、缓存系统和数据库索引等领域具有重要应用,合理使用哈希可以显著提升程序性能。通过本文,读者可以更深入地理解哈希的原理及其在

2025-05-17 18:09:29 1558 21

原创 红黑树解析

红黑树是一种自平衡的二叉搜索树,通过节点颜色(红或黑)和一系列性质确保树的近似平衡,从而在插入、删除和查找操作中保持高效。本文详细介绍了红黑树的概念、性质、节点定义与结构,并重点探讨了其插入操作的实现步骤,包括按照二叉搜索树规则插入新节点以及通过旋转和变色修复红黑树性质。此外,文章还展示了红黑树在C++标准模板库(STL)中模拟实现map和set容器的应用,通过红黑树的高效特性,这些容器能够快速、有序地存储和访问数据。通过深入理解红黑树的原理和实现,读者可以更好地应用这一数据结构解决实际问题。

2025-05-15 22:50:57 899 26

原创 AVL树解析

这段代码实现了一个AVL树的插入操作及其平衡维护机制。AVL树是一种自平衡二叉搜索树,通过旋转操作保持树的平衡。插入操作首先检查树是否为空,若为空则直接创建根节点。否则,通过遍历树找到合适的插入位置,并插入新节点。插入后,代码通过更新节点的平衡因子来检查树的平衡状态。如果平衡因子超出允许范围(2或-2),则进行相应的旋转操作(左旋、右旋、右左双旋或左右双旋)以恢复平衡。旋转操作调整了树的结构,并更新了相关节点的平衡因子。最终,插入操作返回true表示成功插入,或false表示插入失败(如遇到重复键值)。代码

2025-05-11 22:27:47 530 12

原创 C++ 关联式容器:map,multimap,set,multiset

本文详细介绍了C++标准模板库(STL)中的关联式容器,包括set、map、multiset和multimap。关联式容器通过键值对存储数据,提供了高效的检索功能,底层通常采用红黑树等平衡搜索树实现。set和map分别用于存储唯一元素和键值对,而multiset和multimap则允许重复元素。文章还探讨了这些容器的特性、模板参数、常用接口及使用示例,帮助读者理解其应用场景和底层实现,从而在实际编程中更高效地使用这些容器。

2025-05-10 17:50:54 1124 21

原创 C++异常介绍

C语言传统错误处理方式主要包括终止程序(如assert)和返回错误码,前者在严重错误时使用,后者则更为常见,但需要程序员自行查找错误。C++引入了异常处理机制,通过throw抛出异常,try捕获异常,catch处理异常,这种方式相比C语言更为灵活和温和。C++异常处理允许异常的重新抛出,确保异常能在更外层的调用链中处理。异常安全是C++中的一个重要概念,特别是在构造函数和析构函数中,避免抛出异常以防止资源泄漏。C++异常规范通过throw(类型)明确函数可能抛出的异常类型,提高了代码的可读性和安全性。尽管C

2025-05-10 16:37:47 916 26

原创 二分查找习题

本文总结了二叉树相关问题的解题思路与实现方法,主要包括:二叉搜索树转双向链表:利用中序遍历特性,调整指针构建有序双向链表。二叉树转字符串:通过前序遍历,处理空节点并拼接字符串,确保二叉树与字符串的一一映射。二叉树的最近公共祖先:通过递归回溯或路径记录,找到深度最大的公共祖先节点。二叉树前序遍历:使用栈模拟递归,按根-左-右顺序遍历节点。二叉树中序遍历:借助栈实现左-根-右的遍历顺序,确保节点值按序记录。二叉树后序遍历:采用双栈法或单栈标记法,实现左-右-根的遍历顺序。每种方法均结合C++代码

2025-05-07 22:24:51 537 21

原创 二叉搜索树

二叉搜索树是一种特殊的二叉树,它满足以下性质:- 对于树中的每个节点,其左子树中所有节点的值都小于该节点的值。- 对于树中的每个节点,其右子树中所有节点的值都大于该节点的值。基于这些性质,二叉搜索树能够在平均情况下以O(\log n) 的时间复杂度完成查找、插入和删除操作,其中n 是树中节点的数量。代码结构我们来看的这段C++ 代码定义了一个 BSTree 类,用于实现二叉搜索树。

2025-05-05 16:54:35 1219 19

原创 C++ 多态:原理、实现与应用

被 virtual 关键字修饰的类成员函数。cpppublic:std::cout << "买票 - 全价" << std::endl;派生类中定义与基类虚函数返回值类型、函数名字、参数列表完全相同的虚函数。cpppublic:std::cout << "买票 - 半价" << std::endl;1. 通过基类指针或引用调用虚函数:###不可用子类指针或引用调用虚函数(- 使用父类指针或引用可以指向不同的子类对象,通过相同的父类接口来调用不同子类实现的方法,从而体现多态性。

2025-05-04 18:06:18 1433 20

原创 C++ 中的继承

在C++ 编程世界里,继承是一项极为关键的特性,它为代码的复用和层次化设计提供了强大支持。掌握继承机制,对于编写高效、可维护的C++ 代码至关重要。今天,就让我们一起深入探究C++ 中的继承。继承是面向对象程序设计实现代码复用的重要手段。它允许我们在保持原有类特性的基础上进行扩展,产生新的类,即派生类。这体现了面向对象程序设计的层次结构,从简单到复杂逐步构建。

2025-05-03 19:01:19 1084 23

原创 C++模板知识

一个程序(项目)由若干个源文件共同实现,每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件,这种模式就是分离编译模式。1. 模板复用了代码,节省资源,能实现更快的迭代开发,C++的标准模板库(STL)就是基于模板产生的。2. 增强了代码的灵活性,能适应多种数据类型。

2025-05-02 17:16:45 959 12

原创 冯·诺依曼体系:现代计算机的底层逻辑与百年传承

从第一台电子计算机到如今的云计算、人工智能,冯·诺依曼体系始终是计算机科学的根基。它不仅定义了计算机的工作方式,更启发了无数技术创新。理解这一体系,就像掌握了打开现代科技世界的钥匙,让我们得以窥探计算机背后的神秘逻辑。未来无论技术如何演进,冯·诺依曼的智慧都将持续闪耀在计算领域的星河之中。如果你对计算机体系结构感兴趣,不妨尝试编写一段简单的汇编程序,亲自体验指令在冯·诺依曼架构中的运行轨迹,这或许会让你对这一伟大设计有更深的感悟。

2025-05-02 12:08:19 1826 18

原创 优先级队列

cpp// 优先级队列模板类// T: 元素类型// X: 底层存储容器类型,默认使用std::vector// Compare: 比较器类型,默认使用Lessprivate:X _con;// 底层存储容器// 堆调整函数声明public:// 构造函数、插入、删除等成员函数声明void pop();通过模板参数 T 、 X 和 Compare ,我们实现了类型、容器和比较规则的高度可定制化。

2025-04-30 18:29:39 1043 27

原创 Linux调试器 - gdb使用指南

debug 模式下,程序保留了丰富的调试信息,包括变量名、函数名、行号等,这使得开发者能够在调试过程中清晰地了解程序的内部状态,方便查找问题。当我们已经仔细检查完程序某个区域的代码,确认该部分代码逻辑无误,想要让程序继续执行下去,以观察后续代码的执行情况时,使用该指令可让程序快速运行,直到遇到下一个断点或程序结束。执行到当前函数返回,然后暂停下来等待后续命令。当我们进入一个函数内部进行调试,在查看完函数内部相关信息后,若想快速回到函数调用的上层继续调试,使用该指令可直接执行到函数返回,无需逐行单步执行。

2025-04-28 22:06:28 1379 29

空空如也

空空如也

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

TA关注的人

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