c语言volatile数组,C语言的volatile与typedef详解

原标题:C语言的volatile与typedef详解

本文和大家分享的主要是C语言中volatile与typedef相关内容,一起来看看吧,希望对大家有所帮助。

Volatile关键字

Volatile就是防优化。Volatile一般和硬件有关,指向硬件的内容可能我们需要不要让编译器去优化,每次都要读取那里的内容。比如我们在实际操作中有一个键盘,我们查看一个按键是否被按下,就是通过读取内存里面关于按键状态的高低电平来识别。那么我们怎么来读取这一个位里面的状态(0或1)?我们能够访问到最小的内存地址就是一个字节,而一个字节里面有8个位。所以我们只能利用一个undsigned char*类型的指针来读取一个字节的内容,再通过位运算来获取到其中的某一位判断它的状态。这就是我们在硬件操作-软件操作于硬件的思路。这一个字节的内容是不是常量,它是由于硬件的状态来决定的,里面的内容可能被编译器优化掉,便于我们读写操作。Volatile主要与char *p结合。

volatile char *p;

while( *p == 0x10 ) //我们可以假设它的状态是值的改变,当按键按下的时候值就变成这样,此时我们的循环体就是它执行的操作了。

xxxx;

Typedef关键字

Typedef是一个别名。在后期,我们需要指针可以指向所有的资源,有些资源类型的声明和读取是比较复杂的。也许我们看到指针的时候不能一眼就看出它的类型。比如下面这种指针使用方法:

int (*p[10])(int ,void (*p)(int));

C语言不断的在描述内存属性,这些内存属性可以是函数,数组…..所以指针指向的类型是千奇百怪的。所以我们就采用Typedef把这些声明别名化。

char *name_t : //name_t是一个指针,指向了一个char类型的内存

typedef char *name_t; // name_t是一个指针类型的名称,指向了一个char类型的内存

name_t abc; // abc 是一个指针,指向了一个char类型的内存

可以看到有了别名之后,我们可以简化指针类型的声明和读取,这在我们后期学了函数之后,它的好处就体现出来了。

原文链接:http://www.maiziedu.com/wiki/c/volatile/返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值