- 博客(44)
- 收藏
- 关注
原创 019-位运算,静动态库
在 windows 平台和 linux 平台下存在着⼤量的库,它们常常提供⼀些通⽤功 能,例如链表和⼆叉树可以⽤来保存任何数据。本质上说库是⼀种可执⾏的⼆ 进制代码(即已经预先编译好但不可以独⽴执⾏),可以被操作系统载⼊内存执 ⾏。由于 windows 和 linux 的平台不同(主要是编译器、汇编器和连接器 的不 同),因此⼆者库的⼆进制是不兼容的。本节仅介绍 linux 下的库,Linux 系统存储库的位置⼀般在:/lib 和 /usr/lib。
2023-08-25 17:28:37
274
原创 018-时间处理库,预处理
define 标识符 字符串例如:# define PI 3.1415926宏定义的作用是在本程序文件中用指定的标识符PI来代替“3.1415926”这个字符串,在编译预处理时,将程序中在该命令以后出现的所有的PI都用“3.1415926”代替。这种方法使用户能以一个简单的名字代替一个长的字符串.这个标识符(名字)称为“宏名”在预编译时将宏名替换成字符串的过程称为“宏展开”。#define是宏定义命令。#define 宏名(参数表) 字符串字符串中包含在括弧中所指定的参数。
2023-08-25 17:27:52
321
原创 017-文件
虽然C语言允许打开多个文件,但打开的文件个数是有限的。 缓冲文件系统为每个被使用的文件都要在内存中开辟一个存储区,存放文件的有关信息(文件名、文件状态、文件当前位置等),这些信息用一个结构体变量保存,该结构体类型名为FILE。其中fp为文件类型的指针,指向已打开的文件,s可以是一个字符串常量,也可以是一个指向字符串的指针,还可以是存放字符串的数组名。 由此可以看出,在缓冲文件系统中,对文件的输入输出是通过为该文件开辟的缓冲区进行的,对文件中数据的处理也是在该缓冲区中进行的。
2023-08-25 17:27:20
319
原创 015-指针(复习一)
地址:字节是构成内存的基本单位,计算机系统为会每一个字节单元分配一个编号,这个编号就称为地址;指针:一个变量的首地址,我们就称为是该变量的指针;指针的就是一个,那么这个地址是一个正整数,指针占用的字节数取决于对应的编译平台和操作系统位数。
2023-08-08 10:41:17
218
原创 014-C语言复习
1)程序:为了控制计算机而编写的指令的集合;程序=数据结构(做菜中用到的容器)+算法(做菜的步骤);编写程序的工具:C,C++,PYTHON, JAVA GO,JS,C#;2)软件:软件=程序+数据+文档软件分类:操作系统软件:主要负责系统资源的一个分配和任务的调度;应用软件:为了实现某一个功能而编写的程序;3)标识符:在计算机中,可以用作名字的字符集合;只能包含字母,数组和下划线组成;不能以数组开头;不能使用C语言中的关键字;
2023-08-07 10:15:01
198
原创 013-共用体,枚举
格式 : union 联合体类型名 {. . . } 按照一定的顺序为枚举的类型变量进行赋值; 枚举的成员就是整型;格式:enum 枚举类型名ok,error,a,b,c枚举会自动赋值,从0开始;若前一个成员被指定赋值了;则其后的成员在其基础上进行递增,每次+1;
2023-08-04 11:40:22
223
原创 012-堆,结构体
不同变量类型的集合当目标比较复杂,需要多维的数据进行描述时进行结构体类型的定义打包,方便对某一个体的信息进行统一管理struct 结构体类型名 {char a;short b;int c;long d;float e;double f;char * h;int(* i)(); 理解: 结构体类型是被自由定义 (struct 结构体类型名)就相当于int、char、、、 它可以被认为是一种的新的自定义的变量类型。
2023-08-03 10:07:25
237
原创 011-函数指针,回调函数,关键词
例子:怎么定义func的函数指针?或者 int(* pfunc)(int , int);1. * pfunc表示该变量是个指针 2.() 强调pfunc是个指针, * 是用来描述pfunc这个变量 3. 函数除了函数名,还有两部分,分别对应即可对比:(指针函数) int * pfunc(int a , int b);pfunc的函数声明该函数有两个 int 型形参,返回值为整型指针 int * 利用函数指针,把目标函数当成参数被另一个函数所调用例子:爬山 动作一,func_1。
2023-08-02 14:33:45
253
原创 010-C语言编程练习题
有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。编程输出该平均值序列。对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3;
2023-08-02 11:46:46
347
原创 007-数组,指针
指针就是寻址的地址例如: 0xbfebe668用来保存地址数据的变量,就是指针变量指针变量不属于基本类型指针在指向目标变量时,必须保证指针本身的指向类型和目标的变量类型一致格式:目标变量的类型 * 变量名;* 表示该变量的类型是指针指针的目标变量类型必须与接下来的指向目标的类型一致例子: int * p;指向基本数据类型的指针 char * p;float * p;指向符合类型数据的指针 : 数组、指针、结构体、函数。。。例子: int * p;
2023-07-28 10:26:30
140
原创 006-函数递归,内联,变参,声明
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。每一次调用函数,进行递归时,上一次递归时系统为函数分配的空间会被释放吗?每一次调用函数,进行递归时,系统会不会为新的调用函数分配空间?若目标函数的原型定义位置,在被调用的位置之前,则可以不再额外声明。函数A调用了函数B,函数B中又调用了函数A,两者属于递归吗?
2023-07-27 17:53:24
268
原创 005-函数规则
C语言是一种面向过程的语言,任何的一个小过程都可以将其封装成一个函数。-> C语言 -> 函数式语言函数就是一个模块实现过程的一个封装。函数封装的意义:1.简化代码,使得代码变成一个个独立的模块。2.方便工程师后期维护项目。3.方便调用,对于调用函数者,不需要关心实现过程,只需要关心调用函数之后的功能就可以。
2023-07-27 09:31:33
115
原创 002-Shell命令,C语言框架
6、 指针定义、指针赋值,指针解引用、空指针、野指针、通用类型指针,整型指针、字符指针、二级指针、数组指针、函数指针、const指针。7、 结构体定义、结构体变量,结构体指针,结构体变量与指针如何访问成员的,如何计算结构体的占用空间大小,结构体数组。3、 函数意义、调用、声明、定义、函数实参与形参关系、返回值,函数书写规则,函数名定义,函数调用返回的位置。5、 数组定义、数组赋值、数组下标、整型数组、字符数组、指针数组、二维数组。2、 ASCII码、表达式、语句、逗号表达式、三目运算、控制流。
2023-07-21 10:00:53
109
原创 干掉问题_持续更新
git clone时fatal: unable to access ‘https://gitee.com/XXX.git/‘: The requested returned error: 403。进入vendor/hihope/rk3568目录下,修改config.json文件,添加如下内容,其中+号标记的行为要添加的内容,添加时不要包含+号。:QByteArray里面存储的是char字符型,范围是-128~127,当大于127时,就会变成负值,当计算时会按负值进行计算;
2023-04-24 16:07:13
2441
原创 QSerailPort使用readAll()接收数据不完整
通过协议的长度加一个限制,到达协议的实际长度时,再进行解析!我这里接收的数据是有固定的包头,固定的包长;我们可以对包头,包长的判断对数据完整的显示;网上的方法基本试过了,没有解决;一次接收不完整,分多次接收;否则解析协议会出错;
2023-01-10 14:53:14
1073
原创 QT_快速入门
*信号与槽(Signal & Slot)**是QT⾃⾏定义的⼀种通信机制,也是 Qt 编程的基础。通过信号与槽的编程机制,使得 Qt 中处理界⾯各个组件的交互操作时变得更加直观和简单。它独⽴于标准的C/C++语⾔,因此要正确的处理信号和槽,必须借助⼀个称为moc(Meta Object Compiler)的QT⼯具,该⼯具是⼀个C++预处理程序,它为⾼层次的事件处理⾃动⽣成所需要的附加代码。信号(signal):就是特定情况下被发射的事件,⼀般由对象或空间发射出去的消息。
2023-01-10 14:28:20
8039
2
转载 tomcat挂载jenkins环境搭建
tomcat和jenkins都是用java开发的,所以需要安装jdk,用来编译tomcat和jenkins。本文档使用jdk 8u321 和 tomcat 9.0.62 的版本,jenkins使用最新版本。可以在下面的链接中下载。
2023-01-03 18:26:28
742
原创 TDD_UT测试总结
修改D:\file_work\22.6.13(test)\developertest\config下的user_config.xml文件,如下图。-t [TESTTYPE]: 指定测试用例类型,有UT,MST,ST,PERF,FUZZ,BENCHMARK等。-tc [TESTCASE]: 指定测试用例,不可独立使用,需结合-ts指定上级测试套使用。-tm [TESTMODULE]: 指定模块,不可独立使用,需结合-tp指定上级部件使用。-ts [TESTSUITE]: 指定测试套,可独立使用。
2023-01-03 18:14:02
664
1
原创 OpenHarmony环境搭建
编译鸿蒙OS安装编译环境pyhton3.7+、llvm、gn、ninja、hc-gen解压安装包至安装码云repo工具,可以执行如下命令。注意该步操作官方版本貌似有权限问题不能执行。所以做了相应的调整,执行下面命令后码云repo工具运行正常。二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下,如需修改默认位置,请编辑prebuilts_download.sh修改bin_dir值。
2023-01-03 14:46:14
796
1
原创 JS_API_Mock
当前ACE JS应用在DevEco中的PC预览运行环境仅包含ACE子系统代码,不包含其他子系统代码,所以当前无法提供瑜真机上类似的JS API的功能;为了避免开发者在使用JS API时引起页面报错或阻塞页面显示等问题,需要将对应的JS API在Pc预览上进行mock,使得开发者在js中实现的逻辑可以继续执行。代码需要在蓝区提交至https://gitee.com/openharmony/third_party_jsframework的master分支,
2023-01-03 14:27:03
379
原创 TDD_benchmarktest总结
基准测试(benchmarking)是一种测量和评估软件性能指标的活动,可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。这是基准测试最常见的用途,其他用途包括测定某种负载水平下的性能极限、管理系统或环境的变化、发现可能导致性能问题的条件等。
2023-01-03 14:24:25
542
原创 FUZZ测试总结
模糊测试(fuzzing test)是一种软件测试技术,其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏,访问越界等。Fuzzing测试框架使用了LLVM编译器框架中的libFuzzer作为Fuzzing引擎进行构建,libFuzzer是一个基于LLVM编译时路径插桩,可以对被测库API进行路径引导测试的Fuzzing引擎。
2022-12-30 10:52:45
3680
gdb完全手册.pdf
2023-07-28
makefile工具.pdf
2023-07-28
TIME (1).pdf
2023-07-28
文本三剑客之grep及正则表达式 -.pdf
2023-07-28
linux的常用命令大全(精华版)
2023-07-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人