![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 85
浮华蒲公英
这个作者很懒,什么都没留下…
展开
-
C语言ASM(GCC Inline ASM)汇编内嵌语法
带有C/C++表达式的内联汇编GCC允许你通过C/C++表达式指定内联汇编中"Instrcuction List"中指令的输入和输出,你甚至可以不关心到底使用哪个寄存器被使用,完全靠GCC来安排和指定。这一点可以让程序员避免去考虑有限的寄存器的使用,也可以提高目标代码的效率。原创 2023-07-12 11:00:50 · 5180 阅读 · 1 评论 -
#pragma pack()用法
在阅读代码特别是C语法代码的过程中,其实经常会遇到#pragma pack(n),#pragma pack(),#pragma pack(pack,n),#pragma pack(pop,n)等,其中n是可以省略的。并且这些语句一般出现在结构体前面。我们一般都知道该语句是用来进行内存对齐的,但是总结得不是特别清晰。1.#pragma简述:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个原创 2022-09-20 16:40:31 · 2499 阅读 · 0 评论 -
C中的malloc和free释放原理
一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得到自由。2、函数的用法:其实这两个函数用原创 2022-01-20 09:19:09 · 2674 阅读 · 3 评论 -
stm32-Hardfault及内存溢出的查找方法
STM32内存结构1.要点1.1 两种存储类型: RAM 和 FlashRAM可读可写,在STM32的内存结构上,RAM地址段分布[0x2000_0000, 0x2000_0000 + RAM size)Flash只读,在STM32的内存结构上,Flash地址段[0x0800_0000, 0x2000_0000)1.2 六类存储数据段: .data/.bss/.text/.constdata/heap/stack.data数据段: 用来存放初始化了但不是初始化为0的全局变量(glo...原创 2022-01-06 09:27:13 · 6250 阅读 · 0 评论