C语言
修船大队长
这个作者很懒,什么都没留下…
展开
-
在 制作基于stm32f103的温湿度检测时遇到的问题及解决方法
1、DHT11模块启动不了1.没有做DHT11启动判断(若DHT11启动会出现一段低电平),(硬件启动有点玄学问题),如果一次不行就跳过这次循环,下一次再尝试启动DHT11传感器。或者尝试多次拉高电平然后再根据芯片手册的启动电平信号去改变电平信号。2、屏幕上的数值反应有点慢。。有时候还会卡住。猜想:可能是DHT11在某次数据采集过程中出现问题,然后在某个while循环中阻塞住了。解决办法:在while循环中做延时有效性判断,若延时了很久那就直接return,进入下一次数据采集。3.在DHT11_原创 2022-04-06 16:22:18 · 5412 阅读 · 0 评论 -
C语言易错点
在子函数定义的数组不能被return,因为在子函数的数组的内存在运行结束后会回收。使用malloc申请内存空间即可。free()函数 只能free malloc创建的内存,free静态创建的变量会导致段错误。原创 2022-02-07 13:23:25 · 529 阅读 · 0 评论 -
C语言结构体大小计算
我们实际生活中,保存的数据一般不会是同一种类型,所以引入了结构体。而结构体的大小也不是成员类型大小的简单相加。需要考虑到系统在存储结构体变量时的地址对齐问题。由于存储变量地址对齐的问题,结构体大小计算必须满足两条原则:一、结构体成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)二、结构体大小必须是所有成员大小的整数倍下面来具体分析1、简单结构体truct s1{undefined char ch1; char ch2; int i;};这个结构体的大小转载 2022-02-01 19:51:09 · 436 阅读 · 0 评论 -
KMP算法求next数组
next 数组各值的含义:代表当前字符之前的字符串中,相同前缀后缀长度+1本文仅供本人忘记时复习使用。b站有个老师讲的很好的:https://www.bilibili.com/video/BV16X4y137qw?from=search&seid=8054889486484307163&spm_id_from=333.337.0.0...原创 2022-01-28 18:46:34 · 170 阅读 · 0 评论 -
为什么在printf中 数组名++不行,而数组名+1却可以
#include<stdio.h>int main(){ int arry[3] = {1,2,3}; int *p = arry; printf("%d\n",*p); printf("%d\n",*p++); printf("%d\n",*arry++); printf("%d\n",*(arry+1));} 对上面的代码进行编译发现第三个printf出现报错,错误信息:lvalue required as increment operand个人理解:数组名表示数组首元原创 2022-01-11 19:06:56 · 1405 阅读 · 1 评论 -
函数指针与指针函数
函数指针定义: 函数名表示存储空间的首地址,存放着函数首地址的指针变量,简称函数指针。定义方式: 函数返回值类型 (* 指针变量名) (函数参数列表);例子 int(*p)(int, int);使用struct humanlife{ char name[6]; char sex[6]; void (*pborn)(); void (*pgrew)(); void (*pchasedream)原创 2021-01-16 12:45:22 · 103 阅读 · 0 评论