讨论:用C语言开发单片机,大家使用C中的“结构体与共用体”频率怎样?
有时候,只用20%的C就能完成80%的程序开发。C中的结构体与共用体,大家经常用么? 在UART的数据接收发送和数据解释时,用上 结构体与共用体 将会是很爽的。 结构体和共用体用起来很不错,
能用的话尽量使用 什麼是: "结构体与共用体" 不经意发现avrboy 使用的全是繁体字,
莫非?
难道?
或许? 呵呵..現在才發現啊!! 我从来没用过结构体和共用体,也不会用,因为目前还没有碰到必须要用的问题. 结构体与共用体是不是就是指面向對象?? 有没有示例,我也很少用,不熟悉! {:mad:}楼上你这挖的一手好坟 9年前的帖子也能翻出来? 这深度刚刚的 之前写程序只考虑能写出来。现在能注意到一些数据结构和程序架构的问题了。还在探索中 祖坟都挖了 9楼这坟挖得真有深度 挖的一手好坟,改天我也挖挖去。 突然很好奇,当初ouravr的第一个贴子是什么啊,可惜这里不能@阿莫。 挖得深。8位机很少用,32位用得不少,尤其STM32之流,库就充满了结构体 估计是遇到很困扰的问题,然后就一顿挖,然后就挖到坟贴了
共用体(联合体)的方法 把一個unsigned long變量, 分給4個 unsigned char,判断大小端模式
typedef struct{
unsigned char a : 8;
unsigned char b : 8;
unsigned char c : 8;
unsigned char d : 8;
}LONG_BYTES;
typedef union{
unsigned long LONG_Int;
LONG_BYTESLong_Bytes;//此处将结构体换成unsigned char的数组也可以
}LONG_INT;
unsigned char a = 0, b = 0, c = 0, d = 0;
void main(void)
{
LONG_INTT; //声明一个 联合体
T.LONG_Int = 0x12345678;//整体赋值
a = T.Long_Bytes.a; //0x78看 地址与权值的对应关系
b = T.Long_Bytes.b; //0x56
c = T.Long_Bytes.c; //0x34
d = T.Long_Bytes.d; //0x12所以是小端模式
}
页:
[1]