自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 指针数组和指针数组区别

摘要:指针数组(Array of Pointers)和数组指针(Pointer to Array)是C/C++中两个易混淆概念。指针数组本质是数组,每个元素都是指针,如int* ptr[3];数组指针本质是指针,指向整个数组,如int (*ptr)[3]。代码示例展示了二者的声明、初始化和访问方式,以及不同的内存布局:指针数组存储多个指针,每个指向独立变量;数组指针则指向整个连续数组。理解二者的语法差异和内存结构对正确使用至关重要。

2025-10-24 22:30:55 171

原创 C++引用陷阱:从内存泄漏到悬空引用,容易踩的坑

本文深入探讨了C++引用的常见陷阱。分析了返回堆内存引用导致的内存泄漏、野指针与引用结合的危险性,以及悬空引用问题。通过示例代码展示了三种典型错误场景,并提供了解决方案。

2025-10-24 21:49:54 358

原创 左值引用、右值引用、万能引用

文章摘要:C++中左值引用(int&)无法接收右值参数(如常数5),因为右值没有内存地址。而指针(int*)通过强制类型转换可以接收右值,但存在安全风险。有三种解决方案:1)使用const int&接收右值但不可修改;2)使用右值引用(int&&)专门接收右值;3)利用函数模板实现"万用引用"(T&&),既能接收左值又能接收右值。这些方法解决了引用无法直接处理右值的问题,同时保持了引用的安全性优势。

2025-09-27 23:39:22 190

原创 C/C++中 int 的最大最小值是多少

摘要 本文解释了C/C++中32位int类型的取值范围。使用补码表示时,最大值为$2^{31}-1$(2147483647),最小值为$-2^{31}$(-2147483648)。补码的设计解决了$1+(-1)=0$的运算问题。通过4位变量的简化示例(范围-8到7)类比32位情况,阐明了取值范围的计算原理:最大值为$(1<<31)-1$,最小值为$1<<31$。

2025-09-14 17:38:27 2063 2

原创 python添加不同目录下路径,导致vscode无法识别这些路径的问题

解决VSCode无法识别Python动态添加路径的问题,只需配置python.analysis.extraPaths。该方法简单有效,不需要额外插件或修改setting.json文件。操作步骤:在VSCode设置中搜索该选项,添加模块路径(支持绝对或相对路径),保存后即可恢复代码补全等功能。相比sys.path.append(),此方法能让VSCode正确识别模块路径,确保开发工具正常运作。

2025-06-25 16:50:06 553

原创 python 类检查自己是否存在成员

摘要:Python类可以通过hasattr()方法动态检查成员是否存在。示例中,MyClass根据构造参数p决定是否创建成员_x;方法f1()使用hasattr(self, var_name)检查该成员,并根据检查结果输出存在状态。当p=True时创建_x并输出存在,p=False时输出不存在。演示了运行时动态检查对象属性的方法。

2025-06-18 14:58:12 210

原创 python 实现静态变量的一种方式

本文介绍了一种在Python中实现函数静态变量的优雅方法。针对Python缺乏静态变量支持的问题,传统做法是通过多个全局变量实现,但会导致代码冗长。作者提出使用装饰器方案:通过static_var_decorator为每个函数添加独立的静态变量属性,在装饰时指定初始值。这种方法使函数能维护各自的状态变量,避免了全局变量的污染,代码更清晰。示例显示该方法成功实现了类似C++静态变量的效果,函数调用间能保持状态,且初始值可定制。这种方案尤其适合需要多个独立静态变量的场景,比全局变量方案更简洁高效。

2025-06-17 16:24:48 173

原创 结构体struct 内存分配规则及地址运算3——编译器优化

32的结果是因为没有对编译器做优化,那么编译器会按照默认的struct内存分配规则来进行内存分配;的语句,就是告诉人为告知编译器使用何种内存分配规则,两个结构体完全一样,但是内存分配的大小却不一样。而如果在结构体定义前加上了。因此最后大小为25字节。

2025-01-27 11:44:35 477

原创 结构体struct 内存分配规则及地址运算2——地址计算的单位

从结果上看,无论是 test1 或者 test2, 说明地址运算的单位并不是实际分配的地址,而是源地址的大小,或者源指针的大小。

2025-01-26 22:15:30 205

原创 结构体struct 内存分配规则及地址运算

参考:https://blog.youkuaiyun.com/qq_44443986/article/details/110082316。, 就是一个地址,其地址-2就是基于该地址向后移动2个单位空间,而该地址是4,其单位空间大小为4,因此。, n代表一个整数)并不是以字节为单位,而是以。类型的内存空间, 其大小为4, 取地址后,为8 (64位系统下)。解释: 在 C++ 中,

2025-01-25 23:37:34 735

原创 C/C++函数的值传递和地址传递 的理解

之前有大一入学刚学C/C++的同学问我:什么是实参,什么是形参。 我觉得在网上搜索这两个概念,有一大堆的文章帖子,大多数人上大学的学C/C++都会学到,大多数教材讲述得也非常教条,常常感觉学会了但是又很容易犯错误,我之前就犯过错。 除了这个,然后有定义出来了 值传递,地址传递两个概念,又用于弄混。

2025-01-24 17:48:49 352

原创 .vscode 文件夹简单介绍及理解

在使用vscode开发C/C++的时候,对于.vscode里面配置文件有一些好奇,不知道到底做了什么,到官网查阅资料,发现里面的介绍很详细,于是记录分享一下。

2025-01-22 21:53:19 1575

原创 Vivado如何固化比特流

我的开发板:ALINX开发板, 开发板型号:AX7035/AX7035B, FPGA型号: Xilinx Artix 7 FPGA XC7A35T-2FGG484I。我的手册上说是使用N25Q128, 而这个N25Q128有两个选项,一个是3.3V, 另一个是1.8V, 根据手册选择合适的,在我这里我选择3.3V(产品手册上说明了)。这样以后每次上电都会自动加载并运行这段程序,除非再次固化别的程序!添加完成后,Vivado会提示添加完成,是否立即配置存储器,点击OK,进入配置存储器的界面。

2024-11-30 12:47:52 614

原创 It is also possible that a host key has just been changed. linux SSH联通不了问题

这段提示信息解释了远程主机的 SSH 密钥(a host key)与之前记录的不同,这种情况可能是因为被访问的远程主机的 SSH 密钥被更新,比如它重装了操作系统;它是通过哈希算法对远程主机的公钥进行处理后生成的一串字符串,用于唯一标识该公钥。, 也就是根据提示删除这个文件的第14行,或者把整个和远程主机相关的记录都删除,重新建立连接。重新建立链接,把 远程主机新生成的 key 保存到本地的可信任主机列表中。指的是使用 Ed25519 算法 生成的公钥,这是 SSH 常用的加密算法之一。

2024-11-19 23:59:55 587

原创 把windows主机打造成一个Internet网关,多主机共享互联网

在某些时候多个主机里面只有一个主机可以访问互联网Internet(一般我们说上网),然而其他主机无法连接;那么要让所有主机都上网,可以通过局域网(LAN)把所有主机连在一起,一般通过以太网线、交换机等设备,然后把这其中那个可以上网的主机设置为网关,通过它来让这个局域网里面的所有主机上网。如下图所示,这个局域网里面有P1,P2,P3三台主机,其中只有P1可以访问互联网,其他两台不行,如何实现把P1配置为一个网关实现全体主机都可以上网。

2024-10-31 12:31:28 6470

原创 同一个局域网下面的多主机怎么互传文件

因为在某些地方,尤其是涉密要求高的地方是没有办法使用互联网的,那么在这样情况下的多个主机之间互传文件一般是在局域网的情况下进行。如果是两台主机,那么直接用一个百兆或者千兆以太网线对连,形成了一个小的点对点局域网;如果是多个主机,那么可以以太网线,一端连主机,另一端连接交换机或者hub,通过这样的方式把多个主机连在一起。

2024-10-28 22:31:52 2779

原创 gitignore 忽略已经提交过的文件

思路很简单,就是不单单删除文件,还要删除 tracked 记录。, 就是不但删除了文件,也删除了git 对他们的track记录。

2024-10-17 17:07:15 618

原创 JTAG, SWD, J-LINK, ST-LINK区别

本文主要用于介绍 JTAG, SWD, J-LINK, ST-LINK, 以及他们之间的区别

2024-09-27 19:02:08 2759

原创 关于 gitignore 编写匹配规则的一些经验(基于官方文档进行总结)

gitignore 中每一行就是一个 pattern, 需要被忽略取消追踪的 pattern, git根据每一行的pattern来选择匹配,只要是符合的目录或者文件就会忽略。如果某一个目录被忽略,那么git就不会继续深入搜索了,那么该目录下的所有子目录以及文件(无论深度)都会被忽略,而且 用!来取消该目录下的某个子目录或者文件的忽略(继续追踪)也是不可行的——简单来说,就是父被忽略了,儿子一定被忽略,而且尝试用!来恢复儿子,儿子也不能被恢复。

2024-09-03 16:52:15 773

原创 automatic关键字的一些理解

修饰函数,那么函数会采用静态存储的方式,因为systemverilog本身就是在verilog之上的改进,那么很多习惯是基于verilog的,而verilog是一种基于硬件的语言,语言中所有的对象都不需要存放在堆栈区,因此在递归中,每次调用di归函数中的局部变量在所有递归层次之间共享。这会导致递归调用中的状态被覆盖,所以最后当递归到1时, 所有的factorial的值都同步到了1,输出,因此无论参数给多少,结果都是1。块里面, 分别定义了三个变量, 他们的作用域都在always块中,因此重名不会有影响。

2024-07-30 23:20:29 1050

原创 Git代理设置

通过设置Git代理,可以更方便地在受限网络环境下使用Git访问github,提高开发效率。需要替换为实际的代理服务器地址和端口号。

2024-07-11 15:50:15 1936

空空如也

空空如也

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

TA关注的人

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