预处理
define
#define adc (2+3)
define :替换 注意加括号
关键字
数据类型
char
char :硬件处理的最小单位
硬件芯片操作的最小单位
bit 1/0
软件芯片操作的最小单位
1B = 8bit
4M速度? 4Mbit?4MB? Kbit/s KB/s
be :char buff[xx]; not be :int buff[xx];
int
int :编译器最优的处理能力,系统一个周期所能接受的最大处理单位
16bit 2B int
32bit 4B int
int a = 10;十进制10
int a = 010; 八进制8
int a = 0x10;十六进制16
long、short
long、short :特殊长度的限制符
unsigned、signed
unsigned、signed :内存空间的最高字节是符号位还是数据
unsigned 数据 signed 数字
float、double
float、double :内存存在形式
大小:
float 4B ,double 8B
浮点型常量 1.1 => double
1.0f =>float
void
void :语义符 声明 申请一种变量名,其类型靠强制类型转换
void a;
自定义数据类型
C编译器默认定义的内存分配不符合实际资源的形式
struct
元素之间的和,顺序有要求
union
共用起始地址的一段内容,技巧性代码
enum
被命名的整形常数的集合
enum abc{MOD = 100, TUE, WED} 依次累加
enum abc a = 800;
printf("the a is %lu:%d\n",sizeof(a),a);
the a is 4:800 a是一个整数,其值是在enum中取,勿这样用
typedef
typedef :对数据类型取别名
typedef int len_t len_t是int类型的外号,xxx_t 用typedef取的别名
逻辑结构
CPU顺序执行程序,用PC指针指向CPU执行位置
if else
int a = -1;
if(a) //真(非零即真)
switch、case、default
swtich(整形数字)
do、while、for
for:次数
while:条件
continue、break、goto
控制符
goto 函数内部跳转 同一个函数
类型修饰符
对内存资源存放位置的限定,资源属性中位置的限定
auto
默认情况 分配的内存可读可写的区域
区域如果在{ },则是栈空间
register
限制变量定义在寄存器上的修饰符,定义一些快速访问的变量,编译器会尽量的安排CPU的寄存器去存放这个变量,如果空间不足时,还是会放在存储器中。
注意:&取地址 对register不起作用
内存(存储器) 寄存器(快)
0x xxxxx R0,R2 …
static
应用场景:修饰三种数据:
1)、函数内部的变量
int fun{
int a; -->static int a;
}
2)、函数外部的变量
int a; -->static int a;
int fun{
}
3)、函数
int fun();–>static int fun();
printf(“the is %d\n”,fun);