typedf

类型定义,类型的重命名

C语言学习4_寄存器

C语言学习4_寄存器_02

其实就是起名字,很好理解,注意书写方法

static,静态

C语言学习4_局部变量_03

第一,修饰静态局部变量

C语言学习4_局部变量_04

C语言学习4_局部变量_05

本来test中a是局部变量,出了大括号是要直接被销毁的,通过static保住了这个应被销毁的a,让它能够一直存在

C语言学习4_寄存器_06

静态变量是程序被销户,它才被销毁(上述的改变存储位置为:若是局部变量一开始就放在栈区;而用static一开始就会存在静态区)

补充之前学习的笔记:

void,

一般函数都会返回return一个值或者其他,若不想让函数返回值,就可以使用void这个关键词

C语言学习4_寄存器_07

第二,static修饰全局变量

C语言学习4_寄存器_08

extern 引用外部变量

C语言学习4_全局变量_09

换句话说,static修饰之后,全局变量的作用域变小了

第三,static修饰函数

C语言学习4_全局变量_10

将函数和程序分别放到两个不同的文件中,运行会警告,但其实还能运行

再加上extern去声明有外部函数,程序就不会警告

C语言学习4_寄存器_11

C语言学习4_全局变量_12

但如果再加上static,就会报错,原理和上面全局变量差不多

C语言学习4_全局变量_13




register:寄存器

C语言学习4_全局变量_14

一开始cpu连接内存,但科技发展太快,CPU性能日新月异,但是内存跟不上它的速度,就浪费了CPU的性能,于是就思考能不能用一个小一点但是很快的存储器直接跟CPU互动充分显现其性能呢?寄存器就出来了,于是内存到高速缓存,再高速缓存再到寄存器,一级一级上下交互就成了现在这样。

C语言学习4_局部变量_15

注意:这也只是建议,最后到底放不放进去,编译器说了算



define定义常量和宏

C语言学习4_寄存器_16

这样num是满足要求的,此处是常量

C语言学习4_局部变量_17

那么什么是宏呢?

C语言学习4_局部变量_18

函数传参数,宏是直接替换x,y的位置,