枚举
作用: 提高代码可读性,(用名字代表常量)
枚举是一种数据类型,初衷是将变量的值限定在列举出来的值的范围内
本质是一种基本类型(整型)
形式:
enum 枚举类型名 { 要枚举的常量值的名字 };默认第一个常量的值为0,后面依次加1。
例:
表示红绿灯的状态(三种:红,绿,黄)
enum light { RED, GREEN, YELLOW };枚举好处:
提高可读性;带类型检查;常量的相关性
枚举 与 宏定义:
都可以用符号表示常量,提高代码可读性;
枚举是当做一种数据类型,编译时检查,
宏定义是文本替,不做类型检查,预处理阶段。
typedef
类型定义 给已有类型起别名,不是创造新的类型
写法:
把之前定义变量的写法,前面加上typedef 则原先的变量名就成为类型的别名。
typedef int sint32_t; sint32_t a;typedef struct { }stu_t;位运算
位
二进制位,可以控制到二进制位的变化
6种:
与 & 一假则假 操作硬件时,一般用与运算清零
或 | 一真则真 操作硬件时,一般用或运算置位(1)
取反 ~ 真假相对
异或 ^ 同0异1 用途:加密、翻转
左移 << 相当于乘2
a<<n a表示要左移的数值,n表示要移动多少位。左移最高位丢弃,最低位补0
右移 >> 相当于除以2
右移运算,右移最低位丢弃,最低位补0
逻辑右移 (无符号类型)
高位补0
算术右移动 (看要移动的数据的类型,如果是有符号类型,此时就是算术右移)
高位补符号位