一、定时器概述
1. 定时器简介
实现定时器的方式一般有软件、硬件两种方式,本文主要针对STM32的硬件定时器。
2025年06月25日
Golang语言中存在一个关键字type, type又有两种使用方式, 一种是类型别名, 一种是类型定义, 是不是熟悉的C语言(define和typedef)味道?
类型定义
type Student struct {
name String
age int
}
type I int
2025年06月25日
当使用嵌套类(定义在类内部的类)进行模板特化或偏特化时,如果这个嵌套类的访问权限是私有或者保护时,按照以前的 C++ 语法标准,是没有权限进行访问的。但这样的代码在开发模板库时是很常用的,通过对嵌套类使用 trait 技巧来实现对不同类型的模板的特定策略。
由于这种用法很常用,所以很多编译器都默许这样的代码编译通过。所以在 C++20 中,对这种用法进行了规范,要么明确允许这种用法,明确不受嵌套类的权限影响,要么是增加模板的友元(不是具体类的友元)。经过评估,友元的方案增加不必要的复杂性,最后还是采用第一种方案,明确允许这种用法,简化代码。
2025年06月25日
2018 年 4 月,在荷兰阿姆斯特丹 Hack In The Box 安全会议上,我们分享了一个关于隔离网攻击技术的议题——Ghost Tunnel: Covert Data Exfiltration Channel to Circumvent Air Gapping(适用于隔离网络的 Wi-Fi 隐蔽传输通道)。
Ghost Tunnel 是一种可适用于隔离环境下的后门传输方式。一旦 payload(攻击载荷)在目标设备释放,Ghost Tunnel 可在用户无感知情况下对目标进行控制并将信息回传到攻击者的设备。相比于现有的其他类似研究(如 WHID,一种通过 Wi-Fi 进行控制的 HID 设备),Ghost Tunnel 不创建或依赖于任何有线、无线网络,甚至不需要外插任何硬件模块。
2025年06月25日
双向循环链表(Doubly Circular Linked List)是一种数据结构,其中每个节点都包含两个指针,一个指向前一个节点,一个指向后一个节点。与普通链表不同的是,双向循环链表的最后一个节点的下一个指针指向头节点,而头节点的前一个指针指向最后一个节点,形成一个循环。双向循环链表常用的操作包括:
2025年06月25日
启动是 App 给用户的第一印象,启动越慢,用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多,面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实战,本文是实战篇。
原理篇:抖音品质建设-iOS 启动优化《原理篇》
2025年06月25日
虽说C语言是一门很成熟的编程语言,但是近些年来也是有所发展的,从早期的C89到后来的C99、C11等新标准,C语言逐步增加了许多好用的功能,例如新标准头文件“stdint.h”的添加。
如果程序员希望写出可移植的C语言程序,首先最重要的一点是不能假定位宽。C语言标准并没有明确指定的 short、int、long 等类型的位宽,因此可能在某些平台 sizeof(int) 等于 2,在其他平台 sizeof(int) 等于 4,所以如果编写的C语言代码假定 sizeof(int) 是一个固定值,显然就属于不可移植的代码。