![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
Croxd
这个作者很懒,什么都没留下…
展开
-
c语言中的几个关键字
auto:自动局部变量,一般我们在定义局部变量的时候,就是auto局部变量,只不过我们写的时候把它省略掉也是一样的效果的,局部变量是保存在栈上的。extern:生命全局变量的。比如我 a.c中定义可 int a, b.c中想调用 这个a 但是没有定义,这时候在b.c中你要使用这个a变量之前,用extern a,来告诉a是在别的文件定义了,就可以使用了。static:有两种用法,第一种是修饰局部变量,叫做静态局部变量。静态局部变量跟赋值了的全局变量一样,保存在数据段,生命周期是一样的。他的连接是...原创 2022-06-02 15:27:20 · 162 阅读 · 0 评论 -
我所理解的回调函数
第一步:定义回调函数类型typedef void (*slGetUvcCallBack)(Sl_usb_info_t* info);第二步:把这个回调函数传到你获取信息的接口函数get_info(slGetUvcCallBack callock)第三步:定义回调函数类型的函数slGetUvcCallBack sl_get_uvc_callback = NULL;第四步:把第二步的...原创 2020-03-11 11:14:05 · 222 阅读 · 0 评论 -
Linux下c语言函数中:指针参数的传入、指针参数的传出
函数指针参数的传入:int型#include <stdio.h>#include <string.h>void fun(int *p){ *p = 8; //这边(*p)表示传进来的是a的地址,改变(*p)的值,就是改变a的地址里面的值 printf("函数:p指向:%p, p指向地址中的值: %d,p的地址:%x \n",p,...原创 2019-04-22 15:44:37 · 1301 阅读 · 0 评论 -
Linux下进程通信之:无名管道
进程通信:进程与进程间的数据交换,称为进程通信。进程通讯的方式有:共享内存、信号量、管道、消息队列、socket等等。管道:是一种基于文件描述符的通信方式,可以调用read、write和close等操作文件的接口来操作。它是基于文件描述符的通信方式,它是半双工模式。分为有名管道和无名管道。无名管道:只适用于父子进程之间通信;管道能够把信息从一个进程的地址空间拷贝到另一个进程的地址空间。fd...原创 2019-03-01 15:56:11 · 256 阅读 · 0 评论 -
Linux下进程通信之:有名管道
进程通信:进程与进程间的数据交换,称为进程通信。进程通讯的方式有:共享内存、信号量、管道、消息队列、socket等等。管道:是一种基于文件的描述符,可以调用read、write和close等操作文件的接口来操作。它是基于文件描述符的通信方式,它是半双工模式。分为有名管道和无名管道。无名管道:只适用于父子进程之间通信;管道能够把信息从一个进程的地址空间拷贝到另一个进程的地址空间。fd[0]为...原创 2019-03-01 15:56:20 · 171 阅读 · 0 评论 -
Linux下进程通信---共享内存之:shm
进程通信:进程与进程间的数据交换,称为进程通信。进程通讯的方式有:共享内存、信号量、管道、消息队列、socket等等。共享内存:内核管理一片物理内存,允许不同的进程同时映射,多个进程可以映射同一块内存,被多个进程同时映射的物理内存,即共享内存。映射物理内存叫挂接,用完以后解除映射叫脱接。优点:共享内存是进程通讯最快最有效的。缺点:不存在同步机制,在第一个进程结束对共享内存的写操作之前,...原创 2019-03-01 09:06:42 · 1572 阅读 · 0 评论 -
linux内存中静态区、栈、堆间的区别
静态区:保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。stack是栈:保存局部变量,其空间是由操作系统自动分配释放。栈上的内容只在函数的范围内存在,程序运行过程中函数调用时参数的传递也在栈上进行,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。当然栈也有动态分配,由 ...原创 2020-10-13 16:25:06 · 550 阅读 · 0 评论 -
Linux下进程通信之:信号量
进程通信:进程与进程间的数据交换,称为进程通信。进程通讯的方式有:共享内存、信号量、管道、消息队列、socket等等信号量:可以被看做是一种具有原子操作的计数器,它控制多个进程对共享资源的访问,通常描述临界资源当中,临界资源的数目,常常被当做锁(lock)来使用,防止一个进程访问另外一个进程正在使用的资源。-------------------------sem_test1.c-----...原创 2022-05-07 16:32:48 · 250 阅读 · 0 评论 -
Linux下进程通信---共享内存之:mmap
进程通信:进程与进程间的数据交换,称为进程通信。进程通讯的方式有:共享内存、信号量、管道、消息队列、socket等等。共享内存:内核管理一片物理内存,允许不同的进程同时映射,多个进程可以映射同一块内存,被多个进程同时映射的物理内存,即共享内存。映射物理内存叫挂接,用完以后解除映射叫脱接。优点:共享内存是进程通讯最快最有效的。缺点:不存在同步机制,在第一个进程结束对共享内存的写操作之前,...原创 2019-03-01 09:06:21 · 474 阅读 · 0 评论 -
Linux下C语言线程的创建、传参、互斥和同步
进程:程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合。而进程是正在执行中的程序。当程序被执行时,执行人的权限和属性,以及程序的代码都会被加载入内存,操作系统给这个进程分配一个 ID,称为PID(进程 ID)。是资源分配的基本单位。线程:线程是进程中的一个实体,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,线程自己不拥有系...原创 2019-02-14 17:52:00 · 3120 阅读 · 1 评论 -
C语言中用strstr()函数,截取字符串中我们想要的字符串
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。用strstr可以很方便的截取字符串中我们想要的字符: 截取字符串的文本如下,ESSID:"tps" psk:"123" ,我们用strstr截取里面的 tps 和 123 字符:实现截取字符串:#include <...原创 2019-02-01 09:43:37 · 8242 阅读 · 0 评论