数据类型
数据类型 | 内存大小 |
char | 1Byte = 8 bit |
short | 2Byte = 16 bit |
int | 4Byte = 32 bit |
long | 4Byte = 32 bit |
float | 4Byte = 32 bit |
double | 8Byte = 64 bit |
signed、unsigned:有符号、无符号。所有变量默认为有符号类型
sizeof:获取数据的大小,返回字节数
位、字节、字
位(bit):计算机中最基本的单位
字节(Byte):计算机中数据存储的基本单位。1Byte = 8 bit
字(Word):计算机进行数据处理和运算的单位。
32位机中, 1 Word = 4 Byte = 32 bit。
64位机中,1 Word = 8 Byte = 64bit
数据存储
关键字 | 用途 |
static | 定义静态局部变量 |
extern | 跨文件声明变量 |
const | 设置为不可改变的常量 |
volatile | 确保变量不被优化 |
static
1、全局变量前加static
全局变量前加static的含义为限定全局变量的使用范围。
不加static的全局变量,可以在整个工程中去访问到。
加入static之后,只有定义该全局变量的源文件(.c)中可以访问到,而不是整个工程可以访问到。
2、局部变量前加static
局部变量前加static的含义是改变局部变量的存储位置,从而使得函数退出时,局部变量不释放
不加static的局部变量存放在栈中,函数退出,栈释放,局部变量被释放
加入static的局部变量存放在数据区,函数退出,局部变量(局部静态变量)仍存在
3、函数前加static
函数前加static的含义与1类似,都是限定使用范围
不加static的函数,可以在整个工程中去访问到(声明后就可以使用)。
加入static之后,只有定义该函数的源文件(.c)中可以访问到,其他文件即使声明也不能使用
volatile
定义指向寄存器的变量,告诉编译器,每次都从原始地址去读取值,以确保每次读写寄存器都是真正的执行。