
代码学习
厉害了我的思
这个作者很懒,什么都没留下…
展开
-
C语言共用体-union的用法
定义格式union 共用体名{ 成员列表};共用体特点:1)占用的内存等于最长的成员占用的内存2)共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。会影响其余所有成员。实例说明typedef union{ uint8_t All; struct { uint8_t stopCutter :1; uint8_t updateStation :1;原创 2020-07-24 13:52:11 · 977 阅读 · 1 评论 -
C语言单片机实际应用基础--位域(位段)
应用场景有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。位域实例结构体定义struct bs{ unsigned int m; unsigned int n: 4; unsigned char ch: 6;};m:占用 4 个字节(Byte)的内存;n:“:”后面的数字限定n占用的位数,不能再根据数据类型计算长度,n占用4位(Bit)内存;ch:原创 2020-07-24 11:06:18 · 1410 阅读 · 1 评论 -
C语言单片机实际应用基础--static关键字
关键字static主要用于两个方面:1.变量2.函数1.变量1.1 局部变量1.1.1 普通局部变量1)函数内部,不用static修饰的变量;2)编译器不对变量赋初值,除非显示赋值;3)存储在进程栈中,函数结束后立即释放。1.1.2 静态局部变量1)使用static修饰符定义;2)即使声明时未赋初值,编译器也会初始化变量值为0;3)存储于进程的全局数据区,即使函数返回,其值也保持不变。#include <stdio.h>void fun(原创 2020-07-22 20:13:59 · 1192 阅读 · 0 评论 -
RT-Thread的线程-rt_thread_init
1.静态创建线程--rt_thread_init步骤:1)必须先定义:a.静态的线程控制块b.堆栈空间2)调用rt_thread_init完成线程的初始化注意:以上部分存放在:RW段,编译时就确定,不是动态分配,运行效率高,实时性好。不能被释放。只能使用 rt_thread_detach函数将该线程控制块从对象管理器中脱离void rosserial_thread_init(void){ rt_thread_init(&rosserial_thread,原创 2020-07-22 09:49:27 · 2005 阅读 · 3 评论