编辑
一、代码原理解析
这段代码围绕 “STM32 中 ADC 数据采集、整数与小数计算及串口输出” 展开,核心是数据类型的使用(unsigned int/signed int/float )、ADC 数值转换及串口打印,拆解如下:
2025年06月25日
编辑
这段代码围绕 “STM32 中 ADC 数据采集、整数与小数计算及串口输出” 展开,核心是数据类型的使用(unsigned int/signed int/float )、ADC 数值转换及串口打印,拆解如下:
2025年06月25日
C++中的主要问题之一是存在大量行为未定义或对程序员来说意外的构造。我们在使用静态分析器检查各种项目时经常会遇到这些问题。但正如我们所知,最佳做法是在编译阶段尽早检测错误。让我们来看看现代C++中的一些技术,这些技术不仅帮助编写简单明了的代码,还能使代码更加安全可靠。
2025年06月25日
在很多讨论C++的帖子中经常看到SFINAE这个关键字,它究竟代表什么含义呢
2025年06月25日
数学库中包含许多有用的数学函数。math.h头文件提供这些函数的原型。表16.2中列出了一些声明在math.h中的函数。注意,函数中涉及的角度都以弧度为单位(1弧度=180/π=57.296度)。参考资料V“新增C99和C11标准的ANSI C库”列出了C99和C11标准的所有函数。
2025年06月25日
之前给大家介绍了线性表顺序存储,虽然它的查找很快O(1)的时间复杂度,但是一旦被创建出来,它的长度是固定的,即为MAXSIZE的长度,如果我们添加元素后超过这个值,不得不另外重新开辟一个比MAXSIZE更大长度的数组去存储它,更要命的是将之前的数组完全拷贝到这个新的数组中,而不得不额外花费O(n)的时间复杂度。
链式存储可以很好地解决这个问题,链式存储结构分为单向链表和双向链表,这篇主要介绍单向链表。
2025年06月25日
在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。
auto
在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了一个类型的占位符,通知编译器去根据初始化代码推断所声明变量的真实类型。各种作用域内声明变量都可以用到它。例如,名空间中,程序块中,或是for循环的初始化语句中。
2025年06月25日
通俗的来说,单片机的外部中断(External Interrupts, EXTI)是 MCU 中很重要的功能之一,它允许单片机对外部事件做出快速响应。
2025年06月25日
//一旦结构体定义下来,则结构体中的成员 内存布局就定下来了
//可以通过 age地址 去求大的结构体的内存地址
typedef struct AdvTeacher
{
char name[64];
int age;
int p;
char *pname2;
}AdvTeacher;
void main()
{
int i = 0;
AdvTeacher t1;
AdvTeacher *p = NULL;
p = &t1;
p = p + 100;
p - 1;//编译通过 运行通过 这句话 在cpu中计算
{
int offsize1 = (int)&(p->age);
int offsize1 = (int)&(((AdvTeacher *)0)->age);
printf("offsize1:%d\n", offsize1);
printf("offsize1:%d\n", offsize2);
}
system("pause");
return;
}
2025年06月25日
作为一名安全菜鸟,单纯的了解某一个方面是并不合格的,安全并不仅限于某一门语言、某一个OS,现如今安全研究的技术栈要求的更深、更广。虽说 PE 文件内存加载已经是多年前的技术,但是招不在新、有用就行,内存加载技术仍然有非常广泛的应用(隐藏自身,至于为什么要隐藏自身,dddd),由于笔者之前认知的偏差导致对PE相关的知识仅停留在知道的地步,并没有静下心来去认真分析学习,借此机会补足一下技术点,同时顺便为自己的恶意代码分析的学习之旅开个头。