自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NetDev

笔记

2022-11-05 16:27:44 1587

原创 FinSH

笔记

2022-11-05 16:26:13 1498

原创 FAL笔记

笔记

2022-11-05 16:24:44 286

原创 DFS笔记

rt-thread笔记

2022-11-05 16:22:03 442

转载 C语言头文件/工程组织原则

一、 头文件组织原则源文件中实现变量、函数的定义,并指定链接范围。头文件中书写外部需要使用的全局变量、函数声明及数据类型和宏的定义。 建议组织头文件内容时遵循以下原则: 1)头文件划分原则:类型定义、宏定义尽量与函数声明相分离,分别位于不同的头文件中。内部函数声明头文件与外部函数声明头文件相分离,内部类型定义头文件与外部类型定义头文件相分离。 注意,类型和宏定义有时无法分拆为不同文件,比如结构体内数组成员的元素个数用常量宏表示时。因此仅分离类型宏定义与函数声明,且分别置于*.th和*.fh文件(

2021-06-10 17:09:30 465

转载 struct 对齐原则

原则一:结构体中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算)。原则二:在经过第一原则分析后,检查计算出的存储单元是否为所有元素中最宽的元素的长度的整数倍,是,则结束;若不是,则补齐为它的整数倍。...

2021-06-01 17:55:59 128

原创 switch case使用注意事项

#include <stdio.h>#include <stdlib.h>typedef struct{int a;short b;char * c;}test_switch1_t;typedef struct{int test1;int a;short b;char * c;}test_switch2_t;int main(){int flag = 0;switch (flag){case 0:;test_switch1_t *test1

2021-05-31 11:26:00 149

原创 无名结构体和联合体(struct&union)

记得之前在哪里看到了如下形式的结构体和联合体的命名方式;union{char alpha;int num;};struct{char alpha;int num;};因为写代码的时候用到了,在外网上找了点资料,把这个点记下来;Anonymous unions/structures are also known as unnamed unions/structures as they don’t have names. Since there is no names, direct o

2021-05-31 10:40:02 1232 3

原创 结构体的位域排列

typedef struct{char x:2,y:3,z:3;}test2_t;=======================test2_t c1;c1.x =1;c1.y =2;c1.z =3;int* c2 = (int *)&c1;printf(“c1.x = %d\n”, c1);输出结果:c1.x = 105转换为二进制为:011 010 01 排列次序分别是 z y x涉及到MSB 和LSB的知识点,顺便收集:(MSB)100 0011(LSB)将

2021-05-28 17:06:58 214

原创 关于C语言指针进行四则运算后变化的一点研究

#include <stdio.h>typedef struct{int end;struct{short a;int b;};int d;}test1_t;int main(){printf(“sizeof(test1_t) = %ld\n”, sizeof(test1_t));test1_t a1;char* b1 = &a1;printf(“b1 = %d\n”, b1);b1+=1;printf(“b1 = %d\n”, b1);b1 = (

2021-05-28 16:22:37 140

原创 关于结构体套共用体/结构体的一点笔记

#include <stdio.h>typedef struct{ int end; union { short a; int b; }; int d;}test_t;typedef struct{ int end; struct { short a; int b; }; int d;}test1_t;int main()...

2021-05-26 16:33:19 457

原创 关于 const+char+* 的一点研究

分三种形式:char const *p; const char* p;char *const p;先贴一个例子:成功执行,执行结果:ptr1 =123321ptr1[0] = 1,ptr2[0] =1, ptr3[0] = 1====================================尝试通过指针ptr2,ptr3 修改ptr1指向的字符串的值。编译失败:如果通过普通指针进行修改:执行成功:...

2021-05-19 10:39:37 120

原创 sprintf的用法

#include <stdio.h>#include <string.h>int main(){ int a = 2; char str[100]; sprintf(&str[0], "%d", a); sprintf(&str[1],"%c",str[0]); printf("str =%s, a = %d,strlen = %ld,str[0] =%c,str[1] =%c\n",\ st...

2021-05-14 10:39:10 141

原创 KMP 字符串处理算法

关于KMP,虽然已经理解了,并且能记住实现思路,但是在每次遇到需要写出代码的时候总会出现问题,整理一下代码,加深一下映像。上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>void get_next(char* str1,int next[]) // From the array next[];{ int i = 1, j = 0; ...

2021-04-23 10:06:39 44

原创 字节序及转换

字节序一共有两种方式:大端,小端;大端:将高序字节存在起始地址;小端:将低序字节存放在起始地址;网络字节序统一大端存储方式;本地字节序是根据本地的cpu来的,x86的cpu都是小端存储的。转换方式:htons 把unsigned short类型从主机序转换到网络序htonl 把unsigned long类型从主机序转换到网络序ntohs 把unsigned short类型从网络序转换到主机序ntohl 把unsigned long类型从网络序转换到主机序win 下包含在库 winsock

2020-12-14 10:41:01 545

原创 socket 通信

几个需要注意的点:read函数阻塞下并不是如想象一般 读取等到满足相应的长度再退出,而是一收到数据就会返回;想要达到 接收定长数据的效果,需要在阻塞模式下 将flags 置为:MSG_WAITALL;实现 非阻塞的模式,有两种 方式:一种是在connect和accept过后进行 1.获取套接字的相关字段,并进行修改,大致如下:int x; x=fcntl(s,F_GETFL,0); fcntl(s,F_SETFL,x | O_NONBLOCK);另外一种方法是:将send/re.

2020-12-08 00:00:16 77

原创 线程

主线程和子线程之间没有必然的退出次序关系,主线程退出,子线程可以继续执行,子线程退出,主线程也可以继续执行;程序加载到内存中执行的时候,进程会生成一个主线程,虽然主线程和子线程之间没有必然的退出次序关系,但是如果进程终止,那么进程下所有的线程都会终止。主线程退出后子线程的状态依赖于它所在的进程,如果进程没有退出的话子线程依然正常运转。如果进程退出了,那么它所有的线程都会退出,所以子线程也就退出了。pthread_detach():设置分离状态pthread_self()获得线程自身ID;...

2020-10-14 20:05:12 109

原创 LTE rlc 子层代码阅读及总结

add_bearer: //choose mode-->insert entity-->configure and add to arrayconfigure: //check timers-->configure timers-->configure timers/status_prohibit_timerwrite_sdu: //check size-->check if block on write to queue-->write--&...

2020-10-14 18:47:24 505

原创 关于pthread.h的属性及一点展开

pthread.h 参数attr一些变量的定义:#include <sys/types.h> pthread_mutex_t:Used for mutexes. pthread_t:Used to identify a thread,线程的句柄是pthread_t类型, 该类型不能作为整数处理, 而是一个结构.线程基础:头文件: <pthread.h> 线程操作包括线程创建,终止,同步(联接,阻塞),调度,数据管理和流程交互。 线程不维护已创...

2020-10-14 18:37:17 450

空空如也

空空如也

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

TA关注的人

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