注册 登录
查看: 472|回复: 6

[智能车] 有关FIER_TSL1401中关键字static修饰volatile的问题

[复制链接]
发表于 2014-1-1 13:57:00 | 显示全部楼层 |阅读模式
static volatile tsl1401_status_e  tsl1401_flag = tsl1401_noint;        //tsl1401_status_e是枚举变量名
我想知道static修饰volatile是干嘛的   看了部分C语言深度解析,这两个关键字都有一点了解
      望好心人回复!
                                                                                         -------逍遥闲居
回复

使用道具 举报

发表于 2014-1-1 14:50:35 | 显示全部楼层
static 是 限定 作用域 ,告诉编译器 只能 static 声明定义 的后面 才可以 用  tsl1401_flag  ,这样 加强代码 的 健壮性

volatile  ,是 因为 这个 变量 在 中断里 调用,因此不能 优化,不然读到 脏数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-1 15:00:18 | 显示全部楼层
风落小鱼 发表于 2014-1-1 14:50
static 是 限定 作用域 ,告诉编译器 只能 static 声明定义 的后面 才可以 用  tsl1401_flag  ,这样 加强代 ...

谢谢兄弟,我把static的另一个意思忘了,呵呵      还有就是,
typedef enum
{
    tsl1401_noint,      //没初始化
    tsl1401_start,      //开始采集
    //tsl1401_ing,        //采集中
    tsl1401_finish,     //采集结束
} tsl1401_status_e;
我看了看谭浩强的C语言,是enum后挨着的枚举类型名去定义变量,这儿怎么是枚举变量tsl1401_status_e去定义变量呢?
回复 支持 反对

使用道具 举报

发表于 2014-1-1 15:05:16 | 显示全部楼层
爱神风玲-★ 发表于 2014-1-1 15:00
谢谢兄弟,我把static的另一个意思忘了,呵呵      还有就是,
typedef enum
{

谭浩强 的 C语言 仅仅 是 入门知识而已,很多 常用的 功能都是 没讲到的。

typedef , 是 命名 新的 类型。
  1. typedef enum
  2. {
  3.     tsl1401_noint,      //没初始化
  4.     tsl1401_start,      //开始采集
  5.     //tsl1401_ing,        //采集中
  6.     tsl1401_finish,     //采集结束
  7. } tsl1401_status_e;
这里是 定义 新的 枚举类型 tsl1401_status_e ,山外哥的代码,枚举类型后面都加上 _e

tsl1401_status_e 里面 有的 元素是 tsl1401_noint (默认赋值,0) 、tsl1401_start 等等 ……
回复 支持 反对

使用道具 举报

发表于 2014-1-1 15:06:02 | 显示全部楼层
爱神风玲-★ 发表于 2014-1-1 15:00
谢谢兄弟,我把static的另一个意思忘了,呵呵      还有就是,
typedef enum
{


大家 共同 交流
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-1 18:03:12 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-1 15:06
大家 共同 交流

谢谢山外大哥,但是我还是没有理解变量名定义变量
回复 支持 反对

使用道具 举报

发表于 2014-1-1 22:08:01 | 显示全部楼层
爱神风玲-★ 发表于 2014-1-1 18:03
谢谢山外大哥,但是我还是没有理解变量名定义变量

变量名定义变量?

tsl1401_status_e 不是 变量名,而是 类型名,因为有了 typedef ,所以 tsl1401_status_e 是类型名

int 就是 一个 数据类型, 那么 int a; 这个 理解吧?
tsl1401_status_e 由于 typedef 就成为了 数据类型,所以 可以 tsl1401_status_e a;

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部