- 博客(109)
- 资源 (30)
- 收藏
- 关注
原创 std::function<void()> func
对象,该对象可以包装任何可调用对象(函数、函数指针、lambda 表达式等),并且该可调用对象没有参数并返回。提供了一种在运行时动态选择要调用的函数的方法,使得代码更加灵活。在这个例子中,我们将一个普通函数。
2024-08-06 14:03:52
454
1
原创 standby delay for MIXER and DUPLICATING playback threads
【代码】standby delay for MIXER and DUPLICATING playback threads。
2024-06-29 13:26:07
106
原创 repo sync报错packages/services/Car/: prior sync failed; rebase still in progress
删除rm -rf ../../../../../.repo/projects/android-13.0.0_r24/ecarx/packages/services/Car.git。再回到repo的路径下,重新sync ok。
2024-06-06 11:22:27
261
原创 C++函数的默认值参数介绍
C++中,可以为函数的参数设置默认值,这样当在函数调用中若不指定实际参数时,默认参数将传递给形参。默认值参数使得函数调用更加简洁方便,在某些情况下可以减少代码量。默认参数是在C++11标准中引入。、默认参数的定义顺序自左向右,如果设置了一个默认值,那么右边所有参数都要设置默认值,否则报错。指定默认值的参数必须位于形参列表最右端,从右往左,或者说必须最后。例1、函数参数的默认值可以在函数声明中提供的例子。、函数参数的默认值可以在函数定义中提供的例子。C++函数的默认值参数介绍。C++默认参数的规则。
2024-03-04 22:01:54
668
原创 C语言之static关键字详解
C语言之static关键字详解_c语言static-CSDN博客1.变量2.局部变量和全局变量3.变量的作用域4.变量的生命周期二、static关键字的作用三、static关键字修饰局部变量四、static关键字修饰全局变量 五、static关键字修饰函数
2024-02-23 19:02:36
385
原创 对数组赋值的4种方法
https://wenku.baidu.com/view/9842f9473269a45177232f60ddccda38376be1db.html?_wkts_=1692875037793&bdQuery=%E6%95%B0%E7%BB%84+%E8%B5%8B%E5%80%BC
2023-08-24 19:06:01
1903
原创 指针函数和函数指针
C语言中的指针和函数是其核心特征之一。它们能够提供强大的灵活性和扩展性,对于C语言程序的开发非常重要。在C语言中,还有两个与指针和函数有关的概念需要进一步了解,即函数指针和指针函数。
2023-08-18 15:18:21
216
原创 C++ STL vector添加元素(push_back()和emplace_back())详解
知道,向 vector 容器中添加元素的唯一方式就是使用它的成员函数,如果不调用成员函数,非成员函数既不能添加也不能删除元素。这意味着,vector 容器对象必须通过它所允许的函数去访问,迭代器显然不行。在 《》一节中,已经给大家列出了 vector 容器提供的所有成员函数,在这些成员函数中,可以用来给容器中添加元素的函数有 2 个,分别是 push_back() 和 emplace_back() 函数。
2023-08-03 17:30:37
1423
原创 C/C++中的%d,%u,%zu的差异
zu输出size_t型。补充:如果%zu不能使用,可以用%u取代。%zu,%u不能输出负数。%lld 64位长整数(long long)一个是整型,一个是无符号整型(无法打印负数)。%e 浮点/双字 (科学计算)%.*s Pascal字符串。%llu 无符64位长整数。%f 浮点/双字。%x, %X 二进制整数。%o 八进制整数。%g 浮点/双字。%s C 字符串。%Lf 64位双字。%u 无符整形。
2023-07-28 14:48:23
3866
1
原创 c++中的struct和class的区别
中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。2.访问权限:struct默认的成员变量访问控制权限是public,而class默认的成员变量访问权限则为private。1.继承权限:struct默认为public,而class默认的为private。5. C++中的 struct 和 class 基本是通用的。
2023-04-25 16:36:01
931
1
原创 c++命名空间和include
C++中引入了名称空间,使用类时,必须指定是哪个空间的类,在这个问题上,string类属于标准库空间std,所以必须声明使用哪个空间的string类。//不光要加头文件,和C语言不同。//还要加using。
2023-04-20 11:38:26
471
原创 编译出现-Werror,-Wunused-const-variable
这个没有啥多少的,人狠话不多直接上解释:Wall:编译阶段显示所有警告。Werror:将所有的警告当成错误进行处理,使出现警告时就停止编译,这种错误是最常见的。
2023-04-18 11:08:58
1722
原创 C++命名空间
2、为了解决 C++ 标准库中的标识符与程序中的全局标识符之间以及不同库中的所有标识符之间的命名冲突. 标准 C++ 库的所有标识符都定义在一个名为 std 的命名空间中. 在程序中用到 C++ 标准库时, 使用 std 作为限定.一般方法: 引用命名空间成员时, 用命名空间名对名命名空间成员进行限定, 以区别同名标识符. (命名空间::命名空间成员名)命名空间的作用是建立一些互相分隔的作用域. 把一些全局实体分隔开来, 以免产生名字冲突.5、命名空间成员的方法。
2023-04-17 11:33:22
359
原创 C/C++ 指针数组
此时,定义array数组,数组有6个元素,元素是int*类型;那么,数组元素是指针类型的数组,我们称为:指针数组。可以看到,在数组名前面的“数据类型”,就是定义了数组存放元素的类型。那么,如果我们要把指针变量p存放到一个数组里面,那么,数组元素的类型就是指针变量类型。此时,定义一个数组,数组中元素的类型是“数据类型名*”,是一个指针类型。//定义数组,数组有6个元素,元素是double类型;//定义数组,数组有6个元素,元素是char类型;//定义数组,数组有6个元素,元素是int类型;
2023-04-13 17:42:14
140
原创 char * 和const char *的区别
当指向字符串(常量)时,const char*和char*是没有区别的,但是const char*能更为显示地通过 const 提醒你不能通过指针对常量字符串进行修改,char* 也不能对字符串常量进行修改,但是没有显示的写上const,两者在使用上是一样的。为什么const char*就是针对字符串是用的呢,因为这是一个常量指针,字符串是常量,而且是存储在系统负责管理的常量存储区中的,编译器无权对其进行修改。对传入的参数,不会对指针指向的内容进行修改。char*指针指向的内容是可以改变的,是不固定的。
2023-02-27 15:41:35
5684
原创 查看内存分配情况
可以让您了解应用在一段时间内的表现,包括应用在后台运行的时长以及在该期间内的内存占用情况。它可以帮助您快速找到应用中的低效环节和不当行为(如内存泄漏),这些问题可能会影响应用的表现,特别是在低内存设备上运行时。其状态转储会显示有关每个应用的运行时间、按比例分摊的内存大小 (PSS)、独占内存大小 (USS) 和常驻内存大小 (RSS) 等统计信息。如以下示例所示,输出会显示应用运行时间的百分比,以及相对样本数量的 PSS、USS 和 RSS (您可以通过两种方法检查应用的内存占用情况:使用。
2023-02-24 15:44:35
669
原创 C语言的access函数的用法
ENOENT:路径名中的目录不存在或是无效的符号连接。ELOOP : 解释路径名过程中存在太多的符号连接。EACCES: 文件或路径名中包含的目录不可访问。ENOTDIR: 路径名中当作目录的组件并非目录。检查调用进程是否可以对指定的文件执行某种操作。F_OK 测试文件是否存在。X_OK 测试执行许可权。EFAULT: 路径名指向可访问的空间外。R_OK 测试读许可权。W_OK 测试写许可权。ENOMEM: 不能获取足够的内核内存。mode:需要测试的操作模式。
2023-01-13 16:56:47
1319
原创 C/C++ 字符指针指向字符串的几种方法
字符指针指向字符串的方法由于字符串在内存中连续存储的特点,可以使用指针进行操作,并且指针必须是字符型的。通常将指针指向字符串的首地址,利用指针的后移可以指向后续字符。
2023-01-13 11:25:53
6868
原创 new和malloc的区别
/执行完该语句后,p变成了不确定的指针,在很多机器上,尽管p值没有明确定义,但仍然存放了它之前所指对象的地址,然后p所指向的内存已经被释放了,所以p不再有效。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。void* 表示未确定类型的指针。空指针,其实空指针只是一种编程概念,就如一个容器可能有空和非空两种基本状态,而在非空时可能里面存储了一个数值是0,因此空指针是人为认为的指针不提供任何地址讯息。
2023-01-09 19:42:33
432
原创 结构体指针数据 指针数组 数组指针
p+i是一维数组a[i]的地址,即p+i==&a[i];对该式两边作取内容运算(*)得*(p+i)==a[i],由于二维数组中a[i]==&a[i][0],则*(p+i)表示a[i][0]的地址,即*(p+i)==&a[i][0];注:因为数组指针对于一维数组的使用比较尴尬,对于一维数组,建议使用指针数组比较方便,这里只涉及到关于二维数组与数组指针的知识!这里a是个二维数组的数组名,相当于一个二级指针常量;它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每个元素都是一个指针。
2022-12-14 11:28:10
640
原创 音频相关的概念以及释义
tream,strategy,device,output,flag以及playbackthread之间的关系?-->以output为句柄保存playbackthread;-->将stream进行分类,属于哪一strategy。-->根据output确定playbackthread。-->根据strategy确定播放的设备device。-->根据flag创建playbackthread。-->根据device,flag确定output。-->把声音数据传给这个thread。
2022-11-30 10:05:33
103
原创 使用Android adb来播放音视频
(/storage/sdcard0/Music/hello.mp3为音乐地址)/mnt/sdcard/DCIM/Camera/test.3gp为视频文件地址。/mnt/sdcard/DCIM/Camera/test.3gp为视频文件地址。(/sdcard/timian.mp3为音乐地址)还可以对屏幕进行操作,模拟按键。3、关闭可以采用杀死进程的方式进行。
2022-11-15 14:50:34
2862
原创 java判断相等的方法
是我们来看一下String类,它继承了Object类中equals()方法,但却重写了equals()方法,它首先和自己本身作比较,若相等则 返回true,然后在判断它是否属于String类型,若是,则依次比较字符串每个位置上的字符是否相等。首先会判断两个字符串的引用是否相等,也就是说两个字符串引用是否指向同一个对象,是则返回true。直接使用”==”就行了,相等返回true,否则,返回false。
2022-11-08 19:55:11
4841
原创 linux修改文件/目录所属的用户和组
当然,chown 命令也支持单纯的修改文件或目录的所属组,例如 chown :group install.log 就表示修改 install.log 文件的所属组,但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令。因此,建议大家使用冒号连接所有者和所属组。在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。
2022-11-01 19:41:18
10029
原创 strstr()和strtol()函数的用法
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
2022-10-13 15:07:03
406
原创 Java带返回值的定义和调用
格式:public static 数据类型 方法名(参数){return 数据}数据类型必须和数据是同一类型范例:}
2022-09-27 10:51:01
839
原创 java字符串截取
1、通过subString()方法来进行字符串截取(最常用)2、通过StringUtils提供的方法。3、split()+正则表达式来进行截取。
2022-09-05 21:55:21
777
原创 java字符串的拼接,常使用到的大概有4种方式
由于String是final类型的,因此String对象都是属于不可变对象,因此,在需要对字符串进行修改操作的时候(比如字符串的连接或者是替换),String总是会生成新的对象。3.使用StringBuilder的append方法。4.使用StringBuffer的append方法。2.使用String的concat方法。1.直接使用"+"号。
2022-09-02 14:09:47
238
原创 Handler消息传递机制
(1)Looper:每一个线程只有一个Looper,负责管理MessageQueue,会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。(2)MessageQueue:由Looper负责管理。(3)Handler:它能把消息送到Looper管理的MessageQueue,并负责处理Looper分为它的消息。
2022-09-01 22:32:46
1688
原创 java 中 sleep 和 wait
一起来聊聊 java 中 sleep 和 wait - 知乎java中sleep的用法是什么-java教程-PHP中文网
2022-08-31 11:43:48
605
原创 C++和java和定义和实例化的区别
对于第二种方式则不同,该方式使用了指针,在定义*p时在栈中开辟一个4字节的空间,new Dog()时在堆中开辟一块空间,然后将该空间的首地址赋值给*p,这样,通过*p就可以找到对象在堆中的任何成员方法了。对于第一种方式而言,dog是被存储在栈中的,占用的大小是Dog类中成员变量占用内存的和,此处不包括成员方法,因为成员方法是存放在公共存储区以便所有该类的对象都可以访问的。后会在堆中开辟对象的实际空间,然后将dog指向堆中的空间,这样我们就可以访问对象的成员变量了。中的处理却完全不同。
2022-08-19 15:45:24
432
针对andoroid P(9) BT framework架构、状态机的学习指南
2021-12-02
在mini2440裸板上韦东山lcd裸板实验
2016-04-21
mini2440_lcd_x35驱动的移植体会
2016-04-18
Qt软键盘代码
2015-11-25
测试audio上下行的时延
2023-09-07
不同samplerate 8k、32k、48k,位深16bit 单声道pcm和wav音频测试文件
2022-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人