自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 GD C/C++混编 踩坑3

堆(Heap):堆的大小理论上可以达到虚拟内存的极限,但在实际应用中也会受到物理内存和其他因素的影响。问题描述:如果你已经重定向了printf到串口或其他接口,但该接口没有正确配置或存在其他问题(如缓冲区满),这也可能导致HardFault。问题描述:如果你传递了一个未初始化或者无效的指针给printf,比如试图访问一个不存在的内存区域,这将导致HardFault。堆(Heap):堆的空间可能是不连续的,涉及到更复杂的内存管理算法(如垃圾回收或碎片整理),因此访问速度相对较慢。

2025-01-25 17:28:26 1694

原创 GD32 C/C++编程踩坑回顾2

GD的hal库里面可配置调试信息是可配置的,所以在gd32f3x0_libopt.h重写printf函数为my_printf,这样工作量最小。这种错误通常是由于使用了类似于 0x1234ULmySuffix 这样的语法,其中 UL 是有效的C/C++后缀,但 mySuffix 则不是标准定义的后缀。移除非标准后缀:如果在字面量后面跟随了非标准的用户自定义后缀(例如 mySuffix),你需要移除这些后缀或用其他方法实现相同的功能。确保宏定义正确无误,并且不会产生类似的字面量连接问题。

2025-01-24 17:28:46 470

原创 数组和数组[0]有什么区别

在C和C++编程语言中,数组和数组的第一个元素(即数组[0])有着明显的区别。

2025-01-24 17:03:55 318

原创 GD32 C/C++编程踩坑回顾1

配置环境坑:AC6 compiler配置,language C ++要根据移植的代码支持C++版本反复调整,不然会乱报错,直接霸屏的warning信息。在test.h 使用C编译方式编译c++函数。前提交代:​​​​​​​项目需要GD32F330驱动TI的TOF芯片,但是TI提供的是C++版本的驱动库。原因3:我的调试线太长了,信号不稳定,同时链接时断时续。在烧写程序时,JIink链接正常,Debug页面可以看到信息,但是在download时就发生了。在网上找了好多案例,上述大神的帖子帮了我大忙了。

2025-01-23 09:48:49 401

原创 动态内存管理 - 学习笔记

1、结构体 产生和意义 struct typename { 数据类型 成员1; 数据类型 成员2; };

2022-01-03 05:25:41 133

原创 递归函数-学习笔记

递归函数:函数自身调用自己 #include <stdio.h> #include <stdlib.h> int func(int n) { if(n<0) return -1; if( n == 0||n==1 ) return 1; return n * func(n-1); } int main() { int n ; ..

2022-01-03 04:28:22 3433

原创 指针-学习笔记

1、变量与地址 int i = 1;变量是对地址的别名显示 2、指针和指针变量 指针:内存地址, 指针变量:存放指针的的变量。变量保存的是指针,即地址 3、直接访问和间接访问 int i = 300; int *p = i; 4、空指针与野指针 int * p ; *p = 100;//对于取p指针的地址内的内容,p未定义,不知道所指向的地址 ,所以称为野指针。 //访问野指针会造成访问错误,因为有可能访问内核内部不可访问内存 int *p = NULL; //这是定义一个空指针,主

2021-12-31 04:50:15 138

原创 数组学习注意事项

数组 int arr[10] = {0}; 数组定义初始化, arr = {10};//报错 数组名是数组首地址,数组第一个元素的地址, 同时数组名是一个地址常量。一旦在初始化过后,不能更改数组的信息。 数组越界问题 arr[i] = *(arr + i) 数组访问其实是指针操作,通过指针直接访问数组中的元素, 因此数组访问其实是指针访问地址,不会检查是否数组越界,地址没错,不报错。 ...

2021-12-30 04:23:02 445

原创 循环控制-学习笔记

1、while 循环详解: while(表达式)//表达式为真,执行循环体代码 { 循环体; } 说明: 循环体代码执行一遍后,继续判断表达式真假; 真则再次执行循环体,假则跳过while循环执行下一个代码; 2、do - while 详解: do { 循环体; }while(表达式); 说明: 先进行循环体代码运行,随后判断while内表达式真假 真则再次执行循环体,假则跳过while语句执行下一个代码 3、for循...

2021-12-28 05:36:58 1036

原创 运算符注意事项

1、%:取于操作数必须是整形 2、++ 或 -- 运算符在前,先进行计算,再取变量值使用 运算符在后,先去变量值使用,在计算 #include <stdio.h> int main() { int i = 1; int j = 10 ; int value ; value = i ++ + ++j; printf("i = %d\n",i); printf("j = %d\n",j); printf("value = %d\n

2021-12-28 04:51:59 615

原创 输入 输出专题

1、格式化printf scanf printf() %d 有符号十进制显示 %u 无符号十进制显示 %o 八进制显示 #%x :显示十六进制数前加0x #%o :显示八进制数前加0

2021-12-27 12:53:25 419

原创 C 语言学习笔记-变量类型

变量存储类型: auto : 默认类型,自动分配空间,自动回收空间,局部变量主要在栈中。 static :静态型,自动初始化为0或者NULL,并且其变量的值具有继承性。常用于修饰变量或函数 extern :说明型,意味着不能改变被说明的变量的值或者类型 register:建议型,寄存器类型,只能定义局部变量,不能定义全局变量, 寄存器变量没有地址,所以一个寄存器类型的变量无法打印出地址产看或者使用。 寄存器类型变量大小有限制,不能定义超出机器访问位数的数据类型,例如32位系统下,不能定义超出32

2021-12-26 06:54:50 568

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除