摘要: 概述 c++的switch语句在汇编层面有着独特的表现形式以及优化方案,这篇文章就带大家一起探索其中的奥秘。本文的代码均使用vs2022中编写并编译。 温馨提示,本文代码较多,建议使用PC进行阅读。建议大家跟着动手操作一遍,更有效果。 我们把switch语句分成了三种情况 case情况小于4 线性s 阅读全文
posted @ 2025-06-11 22:38 XueZhou 阅读(8) 评论(0) 推荐(0)
摘要: 只有一个if的情况 首先我们通过观察debug选项下的汇编代码,对if语句有一个大致的了解。程序的源代码非常简单,如下: #include <stdio.h> int main(int argc, char* argv[]) { if (argc == 0) printf("argc == 0"); 阅读全文
posted @ 2025-06-08 10:45 XueZhou 阅读(0) 评论(0) 推荐(0)
摘要: 概述 操作符重载是c++的重要特性之一,它允许我们以简单的方式操作对象,隐藏了内部机制。 操作符重载的基本形式为:[可选项] 返回值 operator运算符(可选参数列表) { 函数体 } 下面我们通过一个简单的例子来仔细讨论每一个部分。 一个简单的例子 我们先定义一个时间类,利用该类来说明操作符重 阅读全文
posted @ 2025-06-08 00:42 XueZhou 阅读(11) 评论(0) 推荐(0)
摘要: 概述 fork函数是用于创建进程的函数,它是一个系统函数。若要使用fork函数,需要先包含<unistd.h>头文件。 使用fork 先看一段代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int arg 阅读全文
posted @ 2025-06-05 13:03 XueZhou 阅读(3) 评论(0) 推荐(0)
摘要: 算法简介 插入排序对于需要排序少量数据来说,是一个有效率的算法。其时间复杂度为cn^2,其中n为需要排序的数据,c是一个与n无关的常数因子。 算法原理 就像打牌时摸牌的过程一样,我们从牌堆顶(未排序的数组)中取出一张牌(一个元素),然后把它与手中的牌(已经排序好的数组)逐个比较,把它插入到正确的位置 阅读全文
posted @ 2025-06-03 21:30 XueZhou 阅读(8) 评论(0) 推荐(0)
摘要: 本文讨论了关系与逻辑运算的反汇编形式,希望对学逆向的读者有所帮助 阅读全文
posted @ 2025-05-30 17:06 XueZhou 阅读(7) 评论(0) 推荐(0)
摘要: 本文讨论了在main函数之前调用的函数,有助于读者理解程序是怎样运行起来的 阅读全文
posted @ 2025-05-11 00:21 XueZhou 阅读(10) 评论(0) 推荐(0)
摘要: 写在前面 本篇文章主要是为了记录我在编写Windows平台下任务管理器程序时用到的一些API,希望对有类似需求的读者有帮助。 关键头文件 为了获取进程的详细信息,我们需要用到两个头文件TlHelp32.h和psapi.h。 TlHelp32.h 先说说使用TlHelp32.h获取进程信息。该头文件中 阅读全文
posted @ 2025-05-03 00:59 XueZhou 阅读(33) 评论(0) 推荐(0)
摘要: 在使用vs2022创建单文档的MFC项目时,默认生成的应用程序是带有默认的工具栏和状态栏的,有时我们不需要默认的工具栏和状态栏。下面介绍几种删除它们的方法。 阅读全文
posted @ 2025-04-17 15:18 XueZhou 阅读(25) 评论(0) 推荐(0)
摘要: 为什么需要有Windows GDI Windows GDI是Windows图形设备的简写。其中图形设备有各种显示器、打印机等等。由于应用程序不能直接访问硬件资源,所以当我们需要使用图形设备时,就需要用到GDI。GDI是Windows图形界面的基础。 设备上下文 设备上下文(Device Contex 阅读全文
posted @ 2025-03-31 16:25 XueZhou 阅读(27) 评论(0) 推荐(0)