typedef 顾名思义是类型重定义,这里应该理解为类型重命名。
比如:
当我们在写代码时,有时候会觉得有一些代码太长了,这时候我们就可以使用typedef,可以将原来的名字重新定义一个名字。
static:
static是用来修饰变量和函数的,
1.修饰局部变量——称为静态局部变量
2.修饰全局变量——称为静态全局变量
3.修饰函数——称为静态函数
在我们平时使用局部变量时,局部变量只能存在于其作用域中,一旦出了作用域之后局部变量就会被销毁,当使用static来修饰局部变量时,局部变量就不会被销毁,也就是它的存储空间不会还给操作系统。
当我们使用static修饰全局变量时,在同一个.c文件中并没有什么用,如果你想要使用外部变量时,你刚好使用了static修饰了这个变量,那么你就使用不了,无论你是否声明外部符号,因为全局变量具有外部链接属性,所以在其他源文件内部依然可以使用,但是当你使用static修饰了之后,改变了这个全局变量的属性,由外部链接属性变成了内部链接属性,意思就是只能在这个.c文件使用这个变量,而其他.c文件使用不了。
使用static修饰函数和修饰全局变量是差不多的,使用了static修饰的函数,在其它的源文件内是无法使用的。