当前位置:网站首页>【笔记】C语言数组指针、结构体+二维数组指针小记

【笔记】C语言数组指针、结构体+二维数组指针小记

2022-06-10 13:31:00 创客协会的阿蛋°


在开发中 为了高效,往往使用一大片连续的数据空间,如:结构体,数组,二维数组,而这些组合在一起,又是一大片的空间,在一bin内存一寸金的单片机中,非常的珍贵,所以我们常常使用指针来进行操作,一个是对内存空间的高效利用,一个是代码的高效运行,还有一个是在不懂的人看来, 逼格十足!

数组小记

	uint8_t Change[4];
	
	Mask(&Change[sector],bit);
	void Mask(uint8_t *mask, uint8_t bit)
	{
    
		*mask |= (1 << bit);
	}

以上代码是利用了C语言数组的地址来操作的。

==&Change[sector]==是取数组Change的[sector]开头的起始地址,然后用uint8_t *mask指针指向这地址的开头,即对这个数组进行一系列的操作,相当于:

(uint8_t *mask)&Change[sector] == Change[sector] ;

指针指向的地址,即指针取这块地址的值,长度类型为uint8_t。

以此为拓展:

	uint8_t Change[4];
	
	Mask(Change,bit);
	void Mask(uint8_t *mask, uint8_t bit)
	{
    
		*mask |= (1 << bit);
	}
	//即为对数组的Change[0]的首地址取值,操作*mask 即是对Change地址的操作。
	//uint8_t中,当mask超过7以后,即对第Change[1]操作,以此类推。

我的笔记

因为是手写的,就不打字上来了,个人笔记而已,里面有用结构体+二维数组指针,以及ucosiii系统相关的一些内容,有耐心的人可以研究一下,做个记录,以后写代码可以这样子开发,虽然有点绕,但是很高效。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原网站

版权声明
本文为[创客协会的阿蛋°]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_51102592/article/details/125158681

随机推荐