学习嵌入式的第十七天---枚举

枚举:

一个一个列举出来,变量的值只限于列举出来的值的范围

作用:

1.提高代码的可读性

2.提高代码的安全性

枚举类型:

enum  枚举名  

{          列举各自值 (枚举元素--枚举常量)           };

注意:  

列举各种值  之间需要用逗号隔开  不需要写类型名

eg:   enum  fire

{     LITTLE_FIRE , MIDDILE_FIRE , LARGE_FIRE    };

注意:

1.表示  定义了一种  枚举类型

2.枚举中逐个列举的值  默认是从0开始

  如果有给定的值 则后续没有给值的 枚举成员依次 加1

3.枚举类型 本质  是一个int类型数据

4.枚举类型的变量 与整型类型的变量通用的

5.与 宏定义对比

区别:

       使用阶段不同---宏定义---预处理阶段

                            ---- 枚举  ----编译阶段 要检查语法

                                           -----运行阶段  参与代码运行

       可读性---都提高了可读性

                  ---枚举 更能说明有相关性的一些值间关系

typedef  -----本意  不是定义类型

             ------给类型起别名

int a ;  定义了一个int型变量a

typedef  int a  ; 此时 a是int 类型的一个别名

位运算:---c语言特点

                 -----可以直接操作二进制位

& ----与运算 ---位运算中

 运算规则: 一假则假

应用:清0

eg:  0xaa  0x33

1010   1010

0011    0011

0010    0010 //结果  0x22

|----或运算  

运算规则:一真则真

应用:置1

~ 取反

运算规则:真假相对

^ 异或

运算规则:相同为0,不同为1

应用:加密   

          交换(int  a  ,int b;

                       a=a^b;   b=a^b;   a=a^b   )

   

注意:浮点数不能做位运算

<<  左移

写法:  a<< n  表示将a这个数据  左移n位

 0000  0001  左移1位  相当于乘2

0000    0010

注意:  最低位  补0

>> 右移   

a>>n   表示将a这个数据  右移n位

 0000  0001   右移1位  相当于除2

0000    0000

注意:

算术右移---看符号位---看数据类型

                   如果是有符号类型的数据 ,右移时,最高位补的是符号位

                   如果是无符号类型的数据 ,右移时,最高位补的是0

函数指针-----指向函数类型的指针(基类型为函数类型的指针)

指针函数-----返回值为指针类型的函数

  char  *  strcpy (char * dest, const char *src);

堆上的空间:

void * malloc(size_t  size);

功能:在堆上开辟一块空间

 参数: size表示申请空间的大小,单位字节

返回值:成功返回 申请到内存空间的地址

               失败返回  NULL

释放函数 :

void free (void * ptr)

释放之前申请的堆上的空间

参数: ptr一定是之前申请到堆上空间的地址

free 释放后的空间

1.一般不再使用

2.指向这块空间的指针---是个野指针

3.free之后对应空间上的内容---也不要再使用

注意:

1.成对出现

2.free只是释放了空间---表示这块空间  又自由了

   但是这块空间上的数据   并不会清0

3.不要多次free

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值