C语言学习笔记
研究僧-彬彬
这个作者很懒,什么都没留下…
展开
-
union共用体以及如何判断大小端?
在C语言当中,有一个和结构体非常像的语法叫共用体(Union)。union myunion { int a; char b;};union myunion test;在共用体中,所以成员共用一段内存,对某一个数据成员赋值,其他成员也就失效了。在上述例子中,a占4个字节,b占1个字节,所以test的占据内存大小取他们的最大值4个字节。如图所示,a和b靠地址较小一边对齐,a和b共用一段内存。如果对a赋值,影响了4个字节内存,如果对b赋值,影响了1字节内存,所以不管是谁赋值,都会影响另外一个。刚好原创 2022-04-22 15:59:15 · 3011 阅读 · 1 评论 -
C 语言点运算符( . )和箭头运算符( -> )的区别(以单片机寄存器结构体定义为例)
在单片机寄存器封装的时候,一般库都会选择用地址偏移的办法完成。 #define GPIOC_CRL *(unsigned int*)(GPIOC_BASE+0x00) #define GPIOC_CRH *(unsigned int*)(GPIOC_BASE+0x04) #define GPIOC_IDR *(unsigned int*)(GPIOC_BASE+0x08) #define GPIOC_ODR *(unsigned int*)(GPIOC_BASE+0x0原创 2021-09-26 10:32:08 · 1715 阅读 · 1 评论