- 博客(379)
- 资源 (26)
- 收藏
- 关注
原创 18.C语言结构体
struct 结构体名 {数据类型 成员名1;数据类型 成员名2;// 可以有更多成员int age;这里定义了一个名为Personname(字符数组,用于存储姓名)、age(整型,用于存储年龄)和height(浮点型,用于存储身高)。
2025-03-31 00:27:07
629
原创 17.C语言数组
直接通过数组赋地址给指针,对数组名称取地址,获取的是指针步长,是整个数组的长//这种方式并不是数组指针,对数组名称取地址,获取的是指针步长,是整个数组的长度如果需要定义一个数组指针,首先定义出数组的类型,在通过类型创建数组的指针。//ARRAY_TYPE是一个数据类型,代表有5个int类型的数组元素i < 5;i++) {//首先是p的地址,如果不把p解引用,那会打印的是地址//格式1{1,2,3},{4,5,6},{7,8,9}//格式2//格式3。
2025-03-30 20:40:17
853
原创 16. C语言二级指针
int *ptr = # // 一级指针,指向int类型变量// 二级指针,指向一级指针printf("num的值: %d\n", num);printf("通过一级指针访问num的值: %d\n", *ptr);printf("通过二级指针访问num的值: %d\n", **pptr);return 0;在上述代码中,ptr是一个一级指针,它存储的是num变量的地址;pptr是一个二级指针,它存储的是ptr这个一级指针的地址。要访问num的值,对于一级指针使用一个操作符(*ptr。
2025-03-17 01:16:41
1040
原创 15. C语言读写文件
直接控制:精确管理内存与I/O,适合底层开发。高效灵活:二进制读写、随机访问满足高性能需求。跨平台:标准库保障代码可移植性。严格遵循“打开-操作-关闭”流程优先使用安全函数(如fgets替代gets理解文本与二进制模式的区别通过结合实际场景(如日志、配置、CSV)练习,可快速提升文件处理能力。场景错误与规避错误类型解决方案文件未关闭确保所有分支路径执行fclose()(如goto统一清理)。缓冲区溢出使用限制输入长度。文本/二进制混淆Windows下明确区分模式(如"rb"避免\r\n转换)。
2025-03-16 03:02:55
627
原创 14.C语言const的使用规范,详细说明
运用const可以提升代码的安全性与可读性,防止意外修改数据。要依据具体需求,正确使用const修饰变量、指针、函数参数和返回值。
2025-03-13 23:43:07
413
原创 13.C语言指针的易错点
从上面的指针越界来看,数组定义的长度是3,传入的是abc,abc的长度也是3,但是还有结束符\0所以这个这个属于绝对的越界行为。free()函数的功能只是告诉系统 p 指向的内存可以回收了,就是说,p 指向的。从上面来看p是一直++的,最后释放,存在问题,并不是从初始位释放。,但是,p的值还是原来的值(野指针),p还是指向原来的内存。解决方案,我们可以通过一个临时变量来操作他。
2025-03-10 00:03:09
279
原创 12.C语言 sscanf的使用
匹配非a的字符串,比如dangbangzhu , ^z,那么从d开始匹配,一直到z就结束,结果显然是dabang可以以下案例,z后面就不进行匹配了,全部过滤掉。从以上结果来看,我们似乎没有过滤掉123456.这种问题需要注意,一串本身就是字符串,我们可以通过空格,或者\t来进行解决问题。从一开始匹配,如果有一个匹配不成功,后面的全部不匹配。这是这个方法的特性。)的规则,从输入字符串中提取特定类型的数据(如整数、浮点数、字符串等)。从上面看从过出0-9,首先要吧前面的数据忽略掉,在进一步过滤0-9。
2025-02-24 00:51:56
1205
原创 11.C语言 malloc() calloc() realloc()分配内存
malloc提供了动态内存分配的灵活性,但需谨慎管理以避免内存泄漏和碎片化问题。//malloc 分配内存i< 10;运行结果:赋值//malloc 分配内存i< 10;i++)i < 10;calloc:适合需要分配并初始化内存为零的场景。malloc:适合不需要初始化或需要手动初始化的场景。根据具体需求选择合适的函数!//calloc 分配内存//参数1长度,参数2类型的大小。
2025-02-16 23:55:22
770
原创 10.C语言字符串
1个是dest,1个是souces。我们的++在后,是先用后加。这里可以区分sizioff和strlen的区别,其实我们的\0也是占用位置的。从str1 和str2 来看运行结果, 一个是多一个\0。从代码来看这个案例是代码量最小的,但理解起来就比较麻烦了。\012是八进制下的10进制转换10,对应ac表好是换行。sizeof: 计算数组大小,数组包含\0字符。可以看一下sizeof 和 strlen的区别。strlen: 计算字符串长度,到\0结束。注意字符串一定需要有结束符\0。此案例与案例2差不多。
2025-01-06 00:22:11
400
原创 9.C语言指针
char a;// 1 ~ 3 //char类型原本是1,但是按照内存要求,内存会预留后面3个int b;// 72~ 75//目的需要a b buff d的值。
2025-01-05 03:34:25
795
原创 8.C语言函数入栈 出栈过程
栈(stack)是现代计算机程序里最为重要的概念之一,几乎每一个程序都使用了栈,没有栈就没有函数,没有局部变量,也就没有我们如今能见到的所有计算机的语言。在解释为什么栈如此重要之前,我们先了解一下传统的栈的定义:
2024-12-24 00:04:58
951
原创 7.C语言 宏(Macro) 宏定义,宏函数
define MAX 1025 //定义宏int main()int main()运行结果if (!exit(1);1.宏函数要保证运算的完整性。2.宏函数在一定程度上,会比普通函数效率高,普通函数会有入栈和出栈时间上的开销。3.通常会吧调用频繁的,短小的函数封装为宏函数。
2024-12-22 23:09:46
1754
原创 6.static extern const关键字
const修饰的变量全局变量直接修改 失败间接修改 失败,原因放在常量区,受到保护局部变量直接修改 失败间接修改 成功 因为在栈上伪常量 不可初始化数组。
2024-12-22 13:19:13
576
原创 5.C语言内存分区-堆-栈
程序源代码被编译之后主要分成两段: 程序指令(代码区) 和 程序数据(数据区)。代指码段属于程序指令,而数据域段和bss段属于程序数据为什么要分开?程序被加载到内存中之后,可以将数据和代码分别映射到两个内存区域。由于数据区域对进程来说是可读可写的,而指令域对程序来说是只读的,所以区分之后,可以将程序指令区域和数据区域分别设置成可读可写或者只读。这样可以防止程序的有意或者无意被修改。
2024-12-22 10:09:58
783
原创 3.C语言 sizeof ,unsigned的使用方法
sizeof本质不是一个函数,而是一个操作符1.当统计类型占内存空间的时候,必须要加小括号2.当统计变量占内存空间的时候,可以不加小括号sizeof的返回值类型是,无符号整型,unsigned intsizeof 可以统计数组的长度1.当数组名作为函数参数的时候,会退化成一个指针,指向第一个元素。
2024-12-16 01:03:32
616
原创 2.C语言void的使用
/void是不允许定义变量的//编译器不知道给多少内存,编译器不会让代码通过编译void 是不允许定义变量的: 比如 void i = 10;这样是直接编译报错。因为编译器不知道给多少内存void,不可以创建变量,无法分配内存。void,可以限制函数返回值。void,可以限制函数中的参数列表。void,void*万能指针,可以不需要强制类型转换。
2024-12-15 23:48:10
857
原创 1.C语言 typedef的使用方法
给类型起一个别名,比如给int类型取个中文名字 zhengxingint。可以简化struct关键字可以区分数据类型提高代码的平台可移植性。
2024-12-15 01:24:08
531
原创 5G(NR)信道带宽和发射带宽---频率资源
查看此文之前建议先看看这篇5G(NR)频率资源划分_nr运营商频段划分_达帮主的博客-优快云博客NR频率有上面几个划分 ,可以使用低于1GHz的频端,既可以使用高于30GHz高频端。使用频端高于30GHz那我们称之为高频或者毫米波。使用毫米波是5G网络区别于4G网络的主要特点。
2023-03-18 19:56:46
6209
1
原创 5G(NR)频率资源划分---频率资源
NR频率有上面几个划分 ,可以使用低于1GHz的频端,既可以使用高于30GHz高频端。使用频端高于30GHz那我们称之为高频或者毫米波。使用毫米波是5G网络区别于4G网络的主要特点。在部署5G网络的时候,我们可以看看他们的资源划分,可以看上图中的对称资源(Mainly paired spectrum),和非对称资源(Mainy unpaired spectrum),如果是对称资源在部署5G网络的时候他可以支持FDD小区,如果是非对称资源就可以支持TDD小区,并且FDD资源,主要部署在3GHz以下的频段
2022-10-11 07:28:39
4513
原创 LTE(4G) - NR(5G) RRC Service request
LTE(4G) - NR(5G) RRC Service request描述流程图UE注册成功后,意味着UE与核心网的鉴权注册成功了,注册成功后默认承载也建了,如果UE没有任何数据要传的情况UE的DRB可能是会释放的,与此同时S1接口上的也是会释放的。所有UE在此时属于一个空闲态,在空闲态他会去监听寻呼,如果UE在移动的情况下还会进行小区重选。在这时如果UE要来与网络之间进行交互业务,有一个IP包需要上传,此时UE就需要用到Service reqeust了建议先看UE
2022-04-11 01:46:07
5182
1
原创 LTE(4G) - NR(5G) 测量配置 Measurement configuration
UE收到测量配置之后UE会执行,去做测量,测量完成之后会上报。测量报告是UE测量之后,报告给基站,将测量报告放在RRC connection Reconfiguration Complete中,携带上去,当基站收到UE携带上来的报告时,由基站来进行判决是否进行小区切换,如果需要进行切换,基站会选择最好的小区给UE进行切换,只需要看其他流程了。
2022-03-19 01:52:34
8008
3
原创 LTE(4G) - NR(5G) RRC连接重配置(RRC Connection Reconfiguration)
RRC连接重配置主要的作用就是,修改RRC连接。我们知道当UE第一次接入网络的时候就要进行RRC连接,建立的原因是为了建立SRB1等承载。 如果UE需要传IP包那就需要建立DRB或者SRB2承载他们如何来建立呢?就是通过RRC连接重配置进行建立
2022-03-19 01:22:20
13358
9
原创 LTE(4G) - NR(5G) RRC连接重建立流程(RRC Connection Reestabelish)
我们首先可以看什么时候触发RRC的重建, 在我前面的文章中讲到了RRC建立DRB,SRB一些承载,他们属于不稳定因素,所有需要通过RRC重建来建立重新连接承载等操作。
2022-03-18 00:24:41
5864
3
原创 LTE(4G) - NR(5G) RB 终端与基站之间的承载
目录RB 描述/介绍SRB承载SRB0SRB1和SRB2DRB承载E-RAB(Radio Access Bearer)RB 描述/介绍简介 关键字 描述 RB Resource Bearer 终端与基站之间的承载 DRB Data RB 终端与基站之间的数据承载 SRB Signal RB 终端与基站之间的信令承载 PRB Physical RB L1调度概念 VRB Vi...
2022-03-17 23:40:49
6849
6
原创 LTE(4G) - NR (5G) 手机发送能力(UE Capability)
目录UE能力上报描述流程图总结UE能力上报描述UE能力上报的作用,就是为了告诉网络我支持哪些网络,哪些卡,哪些能力等等..。首先网络需要获取UE的能力,UE初次接入,UE是不会一次性报告给网络的,不报告网络网络如何来获得UE的全部能力呢?请看流程图流程图可以看到流程图,获取UE的全部能力,还是网络问UE取。基站侧向UE来要UE能力是由核心网来进行触发的。这句话可以看流程图理解。MME会向基站发起一个在S1AP接口上面的信令Inital C...
2022-03-17 01:03:05
5726
2
原创 LTE(4G) - NR(5G) NSA Transfer (RRC UL Information transfer)
目录UL / DL信息发送描述UL/DL information transferUL流程图DL流程图DL Information Transfer LogUL Infomation Transfer LogUL / DL信息发送描述UL/DL information transfer在RRC层我们是需要传输NAS消息的,NAS消息是会被封装到(UL/DL Information Transfer)信令消息中的。这两条消息(UL/DL)主要来透传NAS消息...
2022-03-17 00:21:52
2850
4
原创 LTE(4G) - NR(5G) Counter Check信令描述
目录描述作用流程图流程详细流程图描述作用Counter Check的作用就是统计IP包的数量。IP只做加密,而不做完整性保护,完整性保护只有RRC才会做。所以确认完整性就可以通过Counter Check来进行数量统计流程图流程在UE与基站都有一个计数器,计数器会来统计,基站是发送方UE是接收方,基站的计数器会统计基站发送了多少个IP包给UE,UE的计数器会统计UE接收的IP包数量。那么怎么确认是否丢包呢?,如果发送的数量,和接收的数量不相等,那么表...
2022-03-14 23:01:49
1424
3
原创 LTE(4G) 寻呼 (Paging)
寻呼流程图流程:寻呼的流程是由核心网触发的,也就是MME。那么核心网什么时候触发寻呼呢? 核心网侧收到数据包,核心网需要找到UE,让UE来接收这个数据包。数据包传输
2022-03-13 01:15:05
6634
8
原创 LTE(4G) - NR(5G) RSRP和SINR RSRQ RSSI LTE信号质量
RSRPRSRP (Reference Signal Receiving Power,参考信号接收功率) 是LTE网络中可以代表无线信号强度的关键参数以及物理层测量需求之一,是在某个符号内承载参考信号的所有RE(资源粒子)上接收到的信号功率的平均值。用处和规范都等同于WCDMA中的RSCP(Received Signal Code Power)接收信号码功率。百度百科SINRSINR:信号与干扰加噪声比 (Signal to Interference plus Noise Ratio)是
2021-10-16 21:52:13
16823
7
原创 LTE(4G) 接入流程
LTE接入流程1.接入流程总体介绍--Attach流程首先看一下流程图:终端开机后,首先选择适合小区驻留,然后发起Attach流程。Attach流程可以分为以下几个步骤:随机接入 RRC连接建立 鉴权等NAS过程 E-RAB建立Attach时RRC的建立原因值为:Mo-Signaling在Attach时数据卡终端通常只建立一个默认承载,支持VOIP的LG终端以及有些智能终端如HTC往往同时还建立专有承载。2.接入流程总体介绍--Service Request流.
2021-10-16 20:53:52
12240
6
原创 LTE QCI
QCI表示Qos类别指示。这是一种特定标识 ,其定义了LTE数据报通信的质量。QCIL类别范围 1~9(每个类别的定义如下表所示)QCI Resource Type Priority Packet Delay Budget(NOTE 1) Packet Error Loss Rate(NOTE 2) Example Services 1 GBR 2 100 ms Conversational Voice 2 .
2021-10-16 20:11:28
25258
3
原创 LTE(4G) - NR(5G) EPS承载
主要介绍UE与网络直接的承载的建立,建立后接口,与RB描述:目录EPS承载介绍节点详细描述端到端服务EPS承载外部承载E-RAB(Radio Access Bearer)RB 描述/介绍SRB承载SRB0SRB1和SRB2DRB承载EPS承载介绍在EPS网络中对于UE主要的目的是为了上传IP数据包或下载IP数据包,而交互的两方一方是UE,另一方是外部的交互网络,比如腾讯,阿里巴巴等服务区(其实运营商只是做一个IP...
2021-09-25 13:47:03
4481
4
原创 LTE(4G) RRC协议功能和服务
RRC协议功能和服务RRC服务RRC协议协议定义的是UE与基站之间的协议,定义了的具体功能 序列 功能 解释 1 支持空闲模式 主要需要了解空闲模式,对于基准站而言他是会去管理UE,基站是如何管理的呢,首先基站要吧移动性UE定义成两类: RRC空闲状态 RRC连接状态 所以基站要管理UE是通...
2021-09-05 19:55:35
2287
6
原创 4G(LTE)/5G(NR) RRC状态
LTE RRC状态LTE RRC状态图基站在进行移动性管理的时候都是基于RRC的状态进行管理的,在RRC层终端对于RRC的移动性状态而言他有两个状态1.RRC-IDLE(连接态) 2.RRC-CONNECTED(空闲态)。当UE在不同的状态下面UE的行为也是不同的,而网络对终端的移动性控制也是不同的。UE和网络之间没有建立链接时属于空闲状态的,如果UE和网络之间建立了那么他就属于连接态的。空闲态与连接态划分是由RRC是否连接进行划分的...
2021-09-05 19:48:19
8975
5
PhotView.arr
2018-05-15
SwipeBackLayout-1.1.0.arr
2018-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人