枚举和typedef

枚举语法:

enum 枚举名

{

         枚举常量//名字

};

eg:

enum weekdays

{

      MON,

      TUES,

      WED,

     THURS,

     FRI,

     SAT,

     SUN//枚举常量

};

注意:

1.C语言中对于枚举类型实际上是当作整型处理的

2.提高代码可读性,

写成枚举,可以做语法检查

3.枚举常量,之间用逗号隔开

4.枚举常量,可以给初值,给了初值之后,后面的值会依次影响到

typedef   //type define

               //typedef是不是定义了一个新的类型?

注意:

typedef不能定义出一个新的类型,它是给已有类型起别名

用法:

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

typedef int a;//此时表示给int型起了一个别名叫a

用途:

往往用于给复杂类型起别名

为了 可移植性 给一些类型起别名

size_t //long int

typedef long int size_t;

size_t

 位运算:

主要用途,操作硬件

操作硬件的逻辑:

写程序<---->控制硬件

写程序---控制寄存器中的某些二进制位--->关联到某些硬件引脚--->电平的变化

&按位与运算                            置位(0)运算,清零

运算规则:  一假则假

eg:

     0x55

&  0x33

------------------

   0101  0101

   0011  0011 &

------------------------

   0001  0001//0x11

| 按位或运算                                   置位(1)运算

   运算规则:一真则真

eg:

0x55

0x33 |

-----------

0101 0101

0011 0011 |

------------------

0111 0111//0x77

  

^或运算

运算规则:

相同为0,不同为1

eg:

0x55

0x33 ^

----------

0101 0101

0011 0011

--------------

0110 0110//0x66

~取反运算

运算规则:真假相对

<< 左移运算

eg:

     操作数1<<操作数2

    操作数1表示要进行移位操作的数据

    操作数2 表示要移动的位数

a<<2//表示a左移2位

int a = 1;

0000 0001//1

0000 0010//2(左移一位)

0000 0100//4(左移两位)

 a<<2//左移一位相当于乘以2

         //左移n位,相当于乘以2^n

>>右移运算

eg:

操作数1>>擦作数2

操作数1表示要进行移位操作的数据

操作数2表示要移动位数

eg:

unsigned char a = 0x80; //1000 0000

a>>1

        1000 0000

        0100 0000

算数右移

    要移动的数据,本身是有符号类型,如果右移,最高位补符号位

逻辑右移

    要移动的数据,本身是无符号类型,如果右移,最高位补0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值