各位帅哥靓女们,这次我们要做的是对c语言做出一个大概的了解,以便于让我们在后续能很熟系地去使用它,还是老规矩,如果有问题请于评论区斧正,猪猪码字不易,还请各位帅哥靓女们动动小手,给个关注亲!!!
【1】static关键字
static修饰局部变量的时候,改变了变量的存储的位置,影响了变量的生命周期,生命周期变长,和程序地生命周期一样。本质上就是将变量存储的位置从栈区放到了静态区。栈区和静态区地概念我们在后面谈。作用区别如下:
即表现为函数结束时不销毁这个static修饰的变量。
static还有一个重大的作用是修饰全局变量的时候,将这个全局变量的外部链接属性变成了内部的链接属性,其他的源文件就不能再去使用这个全局变量。在我们使用的时候,就感觉作用域变小了。如图所示:
函数同理。
【2】extern关键字
这个关键字就是一个声明,在本源文件的函数或者变量你想去其他的源文件使用,则在使用前必须声明,否则编译器就报错。
【3】register关键字
这个被称作为寄存器关键字,在后续的学习中基本上是用不到这个关键字,这个关键字的作用就是将一个经常使用的变量放入寄存器中,加速程序的运行速度,寄存器的概念会在以后的文章中说明。想要了解的可以关注一下猪猪,后续就能接收倒猪猪关于这方面的文章。
【4】#define关键字(其实他是一个预处理指令)
#define有两个作用一个是定义标识符常量另外一个就是定义宏
定义标识符常量,都说是常量了,肯定是具有常量的所有的特性,不可修改。这个时候就有聪明的小伙伴要问了,那我为啥要用define定义?但是你想想,当你使用一个常量区开辟数组的时候,你发现你这个常量设置的小了,这个时候你会咋办?大部分的人都会直接一个一个的修改,你不觉得这是一件很麻烦的事情,使用#define定义一个常量,需要修改的时候,直接在这个define后面修改,岂不是一件美事?
定义宏,宏在根本上的含义就是在编译的时候,将所有符合形式的表达式替换成宏的表达式,有的很多时候和函数是非常容易搞混的,如图所示:
但是大家想一想,你的宏内部可以创建变量吗?不可以的。所以两者是有本质上的区别。
【5】 struct关键字
struct关键字是用来创建一个结构体的,那么这个时候就有聪明的小伙伴就要问了,啥是结构体?这个时候就要大家区类比数组了,数组是一个大的集合,将所有相同类型的数据放在了一起,而结构体就是将不同的类型的数据放在了一起。如图: