深入解析C语言中volatile关键字与typedef的应用及技巧

本文主要和大家分享的是 C 语言里与 volatile 以及 typedef 相关的内容,让我们一起来看一看吧,期望能对大家有所助益。

深入解析C语言中volatile关键字与typedef的应用及技巧

Volatile关键字

Volatile 的作用是防止优化。它通常与硬件相关,对于指向硬件的内容,我们可能不希望编译器对其进行优化,而是每次都读取那里的内容。例如,在实际操作中如果有一个键盘,我们通过读取内存中关于按键状态的高低电平来识别一个按键是否被按下。那么,我们如何读取这一位里面的状态(0 或 1)呢?我们能够访问到的最小内存地址为一个字节,一个字节内包含 8 个位。因此,我们只能借助一个 unsigned char*类型的指针去读取一个字节的内容,接着通过位运算来获取该字节中的某一位并判断其状态。这便是我们在硬件操作与软件操作于硬件方面的思路。这一个字节的内容是否为常量,是由硬件的状态所决定的。其中的内容可能会被编译器优化掉,这样便于我们进行读写操作。Volatile 主要是与 char *p 相结合的。

volatile char *p;

当 *p 等于 0x10 时,我们可以假设它的状态发生了值的改变,即按键按下时其值会变成这样,而此时我们的循环体就是它所执行的操作。

xxxx;

Typedef关键字

Typedef 是一个别名。在后续阶段,我们需要指针能够指向所有的资源,有一些资源类型的声明以及读取是较为复杂的。或许我们看到指针的时候无法一下子就知晓它的类型。例如像下面这样的指针使用方式:

定义了一个数组 p,它包含 10 个元素,每个元素都是一个函数指针。这些函数指针指向的函数接受两个参数,一个是 int 类型,另一个是一个函数指针,该函数指针指向的函数接受一个 int 类型的参数并返回 void 类型。

C 语言一直在对内存属性进行描述,这些内存属性可以是函数,也可以是数组等等。因此,指针所指向的类型是多种多样的。所以,我们便通过 Typedef 来将这些声明进行别名化。

name_t 是一个指针,它指向了一个 char 类型的内存。

name_t 是一个指针类型的名称,它指向了一个 char 类型的内存。

abc 是一个指针,它指向了一个 char 类型的内存。

有了别名之后,我们能够简化指针类型的声明和读取。在我们后期学习了函数之后,这种简化的好处就体现出来了。

原文链接:

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读