自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用ssh实现 VScode 直连 ubuntu

找到 PasswordAuthentication yes ,并取消注释。在windows的powershell里面可以先试着运行一下。1.vscode中安装插件 Remote‑SSH。在这里输入你ubuntu的ip地址。然后输入ubunntu的地址就行了。3.vscode左下角远程按钮。在ubuntu内运行这段代码。ssh gec@你的IP地址。2.获取到ubuntu的ip。接下来就可以美美敲代码了~

2026-09-04 20:25:17 279

原创 MicroPyhton快速入门

2.isinstance(数据, 类型) 判断这个数据是不是对应的类型-->返回值:True or False。注意,range(0, 10),表示的是从 0 到 10 - 1 =这里的p1 = Person可以看作是Person(name)1.type(数据) 返回值为:数据的类型。子类重写了父类的方法-->输出为子类自己重写的方法。着重注意 按位取反(~):在python中。需要着重注意的是 pyhton中的。self参数表示这个方法是属于类的。在序列里 → True。

2026-09-04 09:32:10 211

原创 文件IO知识点

文件IO的知识点补充

2026-08-18 20:09:57 159

原创 网络编程知识点记录

用户受众上:C/S架构用户群相对固定,而B/S架构相对较广,B/S架构是建立在广域网上的,适应范围强。安全控制能力上:C/S架构比B/S架构更安全,因为用户群相对固定,对信息的保护更强;更新维护方式上:B/S架构维护升级比较简单,而C/S架构维护升级相对困难;物理层-》数据链路层-》网络层-》传输层-》会话层-》表示层-》应用层。:大型网络游戏(如《英雄联盟》、《原神》),需要客户端渲染大量画面。:OA系统(如飞书网页版)、企业邮箱、腾讯文档/石墨文档。:股票交易软件、即时通讯软件(微信PC版、钉钉)。

2026-08-18 08:19:52 188

原创 进程&信号知识总结

然后在回调中。

2026-08-17 19:50:41 155

原创 cJSON库解析json数据包

我们先来总览一下cJSON的函数一般是用来避免内存碎片化的问题(默认用的是malloc和free,由于嵌入式设备的堆内存比较小,如果频繁的malloc和free,可能导致明明还有很多堆内存,但是因为不连续,导致无法有效利用)可以使用自定义的静态内存和释放。

2026-08-12 20:22:43 42

原创 网络编程之发送HTTP请求获取网上的信息

HTTP是应用层的协议,是我们上网最常使用到的协议,这篇博文来讲讲我们可以如何使用HTTP来获取到网页上的一些数据首先我们需要知道HTTP的请求有哪些方法作用常用程度有无Body幂等性GET获取资源(查)⭐⭐⭐⭐⭐❌✅POST创建资源/提交数据(增)⭐⭐⭐⭐⭐✅❌PUT完整替换资源(全改)⭐⭐⭐✅✅PATCH部分更新资源(改)⭐⭐⭐✅❌DELETE删除资源(删)⭐⭐⭐❌✅HEAD只获取响应头⭐⭐❌✅OPTIONS查询服务器支持的方法⭐⭐❌✅CONNECT。

2026-08-12 18:49:00 217

原创 网络编程学习

网络编程能够实现不同设备之间的通信无需线的连接,而是通过连接网络就可以互相发送消息。

2026-08-11 19:21:23 164

原创 网络模型学习

如果这个ACK丢失了,B会超时重发FIN,A需要再次发送ACK。如果A直接关闭了,B就永远等不到ACK,无法正常关闭。

2026-08-11 16:15:40 324

原创 Python数据容器

元组的元素不可修改,但是元组内元素的元素可以修改(元组的元素可以时其他的数据容器)创建元组1.变量名称 = (元素1,元素2......) #用小括号注意:如果仅有一个元素的话,需要在后面加上逗号。

2026-08-03 17:34:56 168

原创 并发编程学习

什么是进程?进程是操作系统进行资源分配和资源调度的最小单位进程的构成:代码块 + 数据块 + 进程控制块(PCB->process contrl block)(跟电路板不是同一个东西)代码块:进程运行时的指令数据块:进程运行时需要的数据进程控制块:指示线程运行到哪个地方,运行的状态可以通过ps -elf查看当前正在运行的进程进程可以分为两类:父子进程(子进程通过父进程调用fork得到) 没有关系的独立进程(2个独立运行的程序)在父子进程中还可以具体分类1.孤儿进程。

2026-08-01 16:22:33 202

原创 目录操作学习

目录操作相关的头文件为。

2026-07-24 09:51:27 145

原创 动态库与静态库

当我们想要将自己写的.c文件给别人使用,但不想让别人知道.c文件中的代码是如何编写的,这个时候我们就可以用到库文件库文件:把函数的源码编译成二进制的库文件,库文件就是用来存放函数源码的动态库和静态库。

2026-07-22 09:28:31 153

原创 字符串操作学习

在常见的代码编写中,程序员都必须要跟各种各样的字符串打交道,有的需要从字符串中获取某个数据,有的要将数据拼接成字符串,有时又需要我们球的字符串的长度,所以掌握如何处理字符串显得尤为重要。

2026-07-22 09:28:13 193

原创 CMake介绍与下载

经过前面的了解,我们可以知道,在管理一个体量较大的工程时工程师不可能一个文件一个文件的去编译,这个时候就需要我们使用Makefile来对整个项目进行编译管理,但是我们编译Makefile也需要花费较大的心力,这是我们可以使用CMake来帮助我们轻松地完成这个工作。

2026-07-21 08:33:11 207

原创 Makefile介绍

第二类的Makefile只需要修改变量的值就可以实现快速的完成编译,比第一类更方便,但还是需要工程师自己打开make文件后再对变量值进行修改。rm *.o $(TARGET) #删除所有的.o以及所有的TARGRT。SRC = hello.c #依赖 (这里可以写多个.c文件)TARGET = hello #目标。一个要减肥的人,他的目标:减肥 达成减肥的方法:少吃多运动。

2026-07-21 08:33:01 198

原创 C语言程序的内存地址分配

当一个C程序被编译为可执行程序,我们运行这个可执行程序时,系统会为这个程序分配一个虚拟内存,以下就是其分配详情(不同的操作系统分的内存大小可能不同,但是顺序都是一样的,只不过每个区域的大小不一)高地址 ┌─────────────────────┐ 0xFFFFFFFF│ 内核空间 │ (操作系统占用,用户程序无法访问)│ (1GB,供内核使用) │├─────────────────────┤ 0xC0000000(3GB 边界)

2026-07-20 08:24:57 234

原创 C语言指针初识

类比其他的数据类型整型:用来的浮点型:用来的字符型:用来指针:是用来的一种类型根据操作平台的位数相同,32位平台的话指针就是32位的;64位平台就是64位的所有的创建变量都可以看成是 type 变量名对于指针来说type -- > int *:这个是一个指针,它指向的地址用分析整型int的方式来处理变量名 --- > point:这个是指针的名字当你想要修改某个地址的数值时,你就需要先将这块地址给过去,然后再在地址上面修改里面的数据常量(包括数组名、字面量)不能被赋值。

2026-07-20 08:22:09 192

原创 标准IO学习

标准 I/O 是 C 标准库提供的文件操作接口,它封装了底层系统调用,并引入了用户态缓冲区机制。掌握标准 I/O 后,开发者便能在任何支持 C 语言的环境中,以统一、可移植的方式对文件进行读写操作,极大地提升了开发效率和代码的跨平台性。返回值返回值含义FILE *成功,返回一个指向FILE结构体的指针(文件流指针),用于后续所有文件操作NULL失败,可以通过perror()或errno查看具体错误原因参数pathname解释:需要打开的路径参数mode解释:选择打开文件的模式模式含义文件不存在。

2026-07-18 13:52:34 231

原创 Linux系统IO

在Linux中,所有东西都可以抽象成文件,对文件进行操作,就是对相关的硬件进行控制。在这里,我们可以利用linux系统提供的函数,实现对各种文件的打开,读写,关闭,设置,偏移这些控制文件的函数,便被称为文件IO。

2026-07-18 10:46:13 214

原创 vim的使用

Vim(Vi IMproved)是一个高度可配置的文本编辑器,是经典 Unix 编辑器Vi的改进版。它被程序员、系统管理员和所有需要高效处理文本的人广泛使用。在很多的嵌入式linux开发环境下是程序员的最优选,熟悉Vim的使用能够极大地提高办公效率。

2026-07-14 20:17:17 233

原创 Linux联网设置

步骤2:重新打开Ubuntu,ifconfig来测试是否有ip地址,ping能不能成功获取数据包。步骤1:开始->搜索控制面板->查看VMware的网卡是否被禁用,如果被禁用了,把禁用->开启。步骤3:找到编辑->虚拟网络编辑器->将桥接模式的桥接网络改为。步骤2:找到ubuntu中的设置->网络->IPv4->如上,如果能够收到数据包,则说明静态ip网络成功连通。虚拟机设置->网络适配器->NAT模式->确认。打开设置->网络->IPv4->自动->应用。步骤1:打开虚拟机设置,先移除网络适配器。

2026-07-14 15:19:36 175

原创 Linux基础知识

变化: 用户名:gec(自己的名字) --> root 用户标识: $ --> #变化: 用户名:root --> gec(自己的名字) 用户标识: # --> $mv 目标文件 目标路径:将目标文件移动到目标路径中(如果存在的话原来的文件就会被覆盖掉)ls -a:查看当前路径下的所有文件(把隐藏文件(以‘.’开头的文件)显示出来)如果原文件被删,软链接就会。cp 需要拷贝的文件(复制谁) 需要拷贝到的路径(到哪里去)

2026-07-13 19:36:56 226

原创 递归函数的使用和设计

这是一个比较简单的问题,可以通过简单的for循环就能实现(当然在这里我们尝试使用递归完成)将问题拆分成一个一个的子问题,确保每次递归都能够越来越靠近最终结果。我们的递归层数也不能过大了,因为递归会不断的调用函数,而。,在没有到达终止条件前,前面进行的递归函数是不会释放的,最终为 5 + 4 + 3 + 2 + 1 = 15。需要找到问题的停止点,避免出现函数出现死循环的情况。编写一个程序,计算 1+2+3+4+…因此,是否使用递归函数还是看具体的需求来决定的。在设计递归函数时,我们需要注意以下几点。

2026-03-26 10:31:48 21

原创 有符号和无符号数据类型对位运算的影响

在许多的编译器里面用的都是逻辑右移,这样能够让许多的运算更方便一点(但是我这次我的编译器确实算数右移的)当然在这里就不适合我了,因为这会导致 -1右移1位仍然是-1。先用无符号类型的数据进行位运算,然后再将其转为有符号类型,这样就能完美兼容所以类型的编译器来进行位运算。在位移有2种情况:一个是算数右移(高位根据数据的正负补符号位),一个是逻辑右移(忽略符号位进行位移)我首要想到的就是通过位运算来实现这个题目,第一次给出的解法是这样的。结果发现每次的输出结果都是 -1!今天碰到了一个题目,如下。

2026-03-26 10:00:54 13

原创 C语言学习

如不能定义。

2026-02-03 18:44:29 675

原创 C语言规范

为不对外的变量和函数加上static,表明该变量和函数是当前.c文件内部使用的函数,避免跟其他文件和库出现相同标识符,导致出现混淆命名清晰明了,含义明确,可以用完整单词或含义明确的缩写不得使用含义不明的缩写和拼音尽量不通过数字来标识,除非逻辑需要标识符尽量减少特殊的标记,不利于代码的移植和维护平台/驱动的适配代码的标识符命名风格与原来保持一致,利于区分/*不推荐,存在风险*//*正确定义*/如果用错误的定义方法,可能导致运算的错误,如本想要实现 c / (a * b)

2026-01-20 18:53:29 789

原创 Python数值类型和对象

浮点数的取值范围:-1.8e308~1.8e308,当数值超过这个范围,会被认为是无穷大或无穷小。二进制0bXX(0BXX)、八进制0oXX(0OXX)、十进制、十六进制0xXX(0XXX)Python中科学计数法--e/E,表示阶码的基--10。布尔类型是一种特殊的整形True对应1,False对应0。1、基本构成:real + imag j;布尔类型仅有两个值:True和False。也可以通过一些特殊的数据来表示False。例如3.14e5 = 314000.0。3、虚部有后缀J或j。

2024-11-16 21:00:52 299 1

原创 Python数据类型

例如str_2[0:5],这里值读取到了'0',也就是索引位的第4位,并没有读取到索引位的第5位'n'在Python中,还支持直接对字符串进行拼接如。

2024-11-16 17:09:21 959

原创 Python输入输出

【代码】Python输入输出。

2024-11-16 15:27:17 296

空空如也

空空如也

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

TA关注的人

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