摘要:API(application programming interface),操作系统提供的应用程序编程接口 | 语言库(API集合,存放着众多的.o .a文件) 链接就是自己写的.c文件形成的.o文件与API中存放的.o文件链接一起,形成一个新的.o文件
阅读全文
摘要:一、数组与指针 【1】一维数组与指针 一维数组内部关系 int a[3] = {1,2,3}; 数组名: 1、可以代表整个数组 sizeof(a)代表整个数组的大小 2、数组的数组名是数组的首地址 注意:数组名是常量,不可以进行自加运算 a = &a[0] a + 1 = &a[0] + 1 = &
阅读全文
摘要:一、函数 函数是功能性代码的集合,通常情况下函数需要返回值 1、函数声明 返回值类型 函数名(形参); 不写声明会有警告,或者可以将函数定义拿到main函数上方 2、函数调用 函数名(实参); 3、函数定 { c语句块; return ; } 形参:一定是变量,用来接收实参的值 实参:可以是变量,也
阅读全文
摘要:1、strcat :字符串连接函数 #include <string.h> char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, size_t n); 功能:将两个字符串进行连接 参
阅读全文
摘要:项目代码最总要的就是函数,函数如何看起? 首先看函数的输入:一定要弄清楚每个参数的意义 输出: 功能是什么: 项目里边那些.文件调用了该函数。 还有就是耐性,一定一定要耐心看下去。 我是从驱动找到的突破口,把一个.c文件里的函数搞懂,全局搜索,看那些.c文件调用了,然后就可以由点到线,有线到面,把握
阅读全文
摘要:.map文件记录了项目中的函数的地址,占用的空间等 .asm文件,汇编语言文件拓展名 .pm文件,脚本语言
阅读全文
摘要:定时器 频率:freq 占空比:duty 输出脉冲中断信号(定时器中断):callback(回调函数) 回调函数;回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件时(如中断发生),而由系统或其它函数来调用的函数。 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为
阅读全文
摘要:大端序: 低地址存高字节 小端序: 低地址存低字节
阅读全文
摘要:一、二维数组 一般形式 数据类型 数组名[行标][列标]; | 数组内元素的数据类型 int a[2][3]; 数据类型 int 完全初始化 int a[2][3] = {1,2,3,4,5,6}; int a[2][3] = {{1,2,3},{4,5,6}}; 注意:行标可以省略,列标必须保留
阅读全文
摘要:一、如何对齐代码 gg 回到文件开头 shift + v 选中第一行 G 选中所有 == 对齐 二、段错误如何调试 gdb调试工具 gcc -g xxx.c 》 a.out gdb ./a.out r 运行 q 退出 <!--5f39ae17-8c62-4a45-bc43-b32064c9388a:
阅读全文
摘要:linux:用户名 ubuntu:主机名 ~:路径 家目录 /:根目录 /home/linux/ pwd(print working directory) 打印当前工作路径 ls(list) 将当前工作路径下的所有文件的文件名以列表的形式显示 ls -l 查看文件属性 drwxr-xr-x 7 li
阅读全文
摘要:一、for循环 一般形式 for(表达式1;表达式2;表达式3) { c语句块; } 表达式1:通常是一个赋值表达式 表达式2:条件或者逻辑表达式 表达式3:能够该改变表达式2结果的语句 1 > 2 > c >3 >2 注意:表达式1只会执行一次 int i; for(i = 0;i < 5;i++
阅读全文
摘要:指针存储的是一个已经存在的空间的地址,这个空间必须存在,才能进行相关操作。 int* add(int a,int b) { int c = a+b; return &c; } //函数结束后,a、b、c都被销毁了,但是c的地址被穿了出来,但是我c不是被销毁了吗? 参数的生命周期 <!--5f39ae
阅读全文
摘要:int a[] 每次都可以传4*n个字节的数组长度的形参。可以知道数组的长度,len = sizeof(a)/sizeof(int) int *a,每次只要传4个字节长度的变量,不知道数组的长度,需要单独传参或控制。
阅读全文
摘要:C语言中的传参方式有两种: 1、值传递 2、指针传递(地址) 思考:指针的本质是什么,是地址,因此指针传参本质上也是值的传递
阅读全文
摘要:char str1[]="abc"//栈,运行的时候赋值,存取较快 char *str2="abc"//abc\0在常量区,str2在栈上,编译的时候就以确定,存取较慢 思考:str1是数组的名称,是数组存放第一个元素的地址,即存放a的空间的地址 str2是一个指针,指针内存放的是地址,即存放常量“
阅读全文
摘要:一、逻辑运算符 && 逻辑与 表达式1 && 表达式2 1 1 1 1 0 0 0 1 0 0 0 0 口诀:与0为0,与1不变 特点:当表达式1结果为真的时候,会继续判断表达式2的结果,但如果表达式1的结果为假,则不会去判断表达式2是否成立 || 逻辑或 表达式1 || 表达式2 1 1 1 1
阅读全文
摘要:一、冯诺依曼 将计算机分为5个部分 (1)输入设备:键盘、鼠标 (2)输出设备:显示屏 (3)存储器: 内存(运行内存)RAM:内存条 外存 ROM: 硬盘、光盘、u盘、sd卡 寄存器:在cpu内部 、提高程序的运行效率 (4)运算器 (5)控制器 注:运算器和控制器集成为cpu 二、进制转换 1、
阅读全文
摘要:ECU:电子控制单元,由CPU、存储器(ROM、RAM)、输入、输出接口(I/O)、模数转换器(A/D)等大规模集成电路组成。 DCU:域控制器,管理ECU 详见:https://blog.csdn.net/weixin_42229404/article/details/81262881<!--5f
阅读全文
摘要:一、如何跳出多重循环 (1)goto(嵌入式不推荐,goto比较复杂) (2)return (3)if判断 (4)在大循环后面判断标志加入break 二、for循环中: (1)break终止循环执行循环体下面的代码 (2)return终止循环并且退出循环所在的方法 (3)continue终止当前循环
阅读全文
摘要:代码耦合:软件结构内部不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 软件工程规定写代码的原则是“高内聚,低耦合”。内聚
阅读全文
摘要:一、结构化程序设计的三种基本构成 (1)顺序结构:一种线性、有序的结构,它依次执行各语句模块。 (2)循环结构:重复执行一个或几个模块,直到满足某一条件为止。 (3)选择结构:根据条件成立与否选择程序执行的通路。 二、方法 (1)自顶而下 (2)逐步细化 (3)模块化设计 (4)结构化设计 三、个人
阅读全文
摘要:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 老实说我并不明白这是什么意思,感觉这应该和java有关,最近在
阅读全文
摘要:日语已经学习了快两个月了,说一下自己的心得吧! 1、语言学习没有捷径,特别是刚开始的时候,五十音图要牢牢的记住,否者后面会出大麻烦 2、单词、课文要多记、多背、多读 3、凡事贵在坚持,小聪明是没有太多用处的,你以为你会了,今天可以不用记了,殊不知一天不背都会有差距,要天天背,不要懈怠 4、任何事刚开
阅读全文
摘要:PIO模式是一种通过CPU执行I/O端口指令来进行数据读写的交换模式。 PIO的英文拼写是“Programming Input/Output Model”,是最先的硬盘数据传输模式,数据传输速率低下,CPU占有率也非常高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其他操作。 P
阅读全文