C/C++程序的编译过程分为四个关键阶段:​​预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)​​。每个阶段承担不同任务,最终将源代码转换为可执行文件。 一、预处理阶段(Preprocessing) 预处理是编译的第一步,主要处理源代码中以 # 开头的指令,生成经过处理的中间代码(.i 文件)。核心功能包括: ​​示例命令​​: 预处理器的核心功能 预处理与编译流程的关系 预处理的实际应用与注意事项 预处理指令示例 …

2025年5月22日 0条评论 26点热度 0人点赞 MuWinds 阅读全文

A.原子性 即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性确保对共享资源的操作不会被其他线程干扰,从而避免数据不一致性(如竞态条件) 本质​​:原子性依赖于硬件和编译器的支持,例如CPU的原子指令(如x86的LOCK前缀)或编译器生成的原子操作代码,确保操作在底层不可分割。 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。试想一下,如果这2个操作不具备原子性,会造成什么样的后…

2025年5月19日 0条评论 40点热度 1人点赞 MuWinds 阅读全文

双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息。 713. 乘积小于 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]…

2025年5月4日 0条评论 32点热度 0人点赞 MuWinds 阅读全文

有两个人 A 和 B。 A 通过网络向 B 发送一条消息。B 收到了之后,怎么确认: 1.这条消息没有被中间人篡改过 2.这条消息确实来自于 A,而不是某个 C 伪造出来的 答案就是使用 MAC。A 在发送消息时,计算出该消息的 MAC 值,并将其一起发送给 B。B 收到之后,便可以根据 MAC 确认 1 和 2. 直接出公式:MAC = 散列 + 对称密钥 也就是说,消息验证码 MAC 是散列技术和对称密钥技术的联合使用。 首先说散列,散列的作用是防篡改。 任何一段消息,不管有多长,都可以通过一个散列算法计算出一…

2025年5月2日 0条评论 21点热度 0人点赞 MuWinds 阅读全文

 Oauth2.0 定义了几种授权流程,其中最重要、也最基础的是 Authorization Code 授权。先看流程图:   1,用户访问 A 网站   2,A 打开 B 的授权页面   3,用户看到授权界面,输入账号密码进行授权   4,B 验证用户是合法的之后,生成一个 authorization code,然后通过 302 跳转的方式,把这个 code 发送给 A   5,A 用这个 code 调用 B 的 api,获得 access token   6,A 用 access token…

2025年5月2日 0条评论 33点热度 0人点赞 MuWinds 阅读全文

一、背景 platformio现有的板子库里面没有ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)的开发板模型,直接强行套用,要么就是解锁不了8MB PSRAM,要么就下载后运行不起来。但是Arduino可以正常解锁。 二、简单解决办法 先选用esp32-s3-devkitc-1作为开发板模型,在它的基础上做额外的修改: 具体修改配置已经整理到platformio.ini,如下: 编译、下载和运行即可。

2025年5月1日 0条评论 24点热度 0人点赞 MuWinds 阅读全文

在现代计算机中,所有数据都以二进制形式存储,即 0 和 1 两种状态。计算机对二进制数据进行的运算(如加、减、乘、除)被称为位运算,即对二进制数的每一位进行操作的运算。 为了更好地理解位运算,举个简单的例子:假设我们有如下代码进行两个整数的加法运算: 计算机会将这两个整数转换为二进制形式,然后进行加法运算: 35: 0010 001147: 0010 1111----------------82: 0101 0010 因此,与直接使用 +、-、*、/ 运算符相比,合理运用位运算可以显著提高代码在…

2025年4月14日 0条评论 44点热度 0人点赞 MuWinds 阅读全文

前途一片阴暗,好凉快,人生一波三折,好便宜,生活千疮百孔,好透气。工作天天加班,好充实。忙的焦头烂额,好暖和。工资少得可怜,好携带。人生一贫如洗,好干净。计划又泡汤了,泡汤很舒服啊,因为太多人对我蹬鼻子上脸,导致我的面部比较扁平,我是被害的,话到嘴边又咽了下去,每天以此获得饱腹感

2025年4月13日 0条评论 54点热度 0人点赞 MuWinds 阅读全文

一部分转载自巴哈姆特:https://home.gamer.com.tw/creationDetail.php?sn=4114818 stringstream是一個C++底下的類別,專門拿來讀取字串並且處理,很多時候拿來做字串的切割,或者是int跟string類別之間的轉換。 头文件(其实竞赛中多数是直接万能头文件的 xD) C++ ●把int型態的數字轉成string 此時的stringstream就像個橋樑,可以負責當中間轉換的部分。 stringstream提供了>>與<<運算子來讀取…

2025年4月9日 0条评论 51点热度 0人点赞 MuWinds 阅读全文

问题如题,本博客也有过这个问题 按f12发现这部分交由static.cloudflareinsight.com/beacon.min.js进行加载,现代的浏览器都有严格cors的策略了,咋可能加载的出来…… 解决方案,参考cloudflare论坛的这篇文章: 然后去dashboard里面去把对应域名的insight关掉就行 点击Manage site的蓝色超链接:

2025年4月9日 0条评论 39点热度 0人点赞 MuWinds 阅读全文
123457