目录
第一部分、常见关键字
1、数据类型关键字
2、流程控制类关键字
第二部分、常用的关键字
1、typedef(类型重定义/类型重命名)
2、static(易混淆const)
2.1、static修饰局部变量
2.2、static修饰全局变量
2.3、static修饰函数
第三部分、关于预处理指令的使用
1、#define定义常量
2、防止头文件被重复包含
3、定义有参宏
第四部分、友情链接
下表格中被颜色标记的,我个人认为是比较重要的,需要记住的。
注意:include、define不是关键字,是预处理指令。
基本数据类型 |
|
||||||
类型修饰关键字 |
|
||||||
复杂类型关键字 |
|
||||||
存储级别关键字 |
|
跳转结构 |
|
|||||
分支结构 |
|
|||||
循环结构 |
|
首先要明白被const修饰的变量会变成常变量,该变量的值便不可以改变。参考博客:C语言中常量的知识。
接着再来了解一下static,static可以用来修饰局部变量、修饰全局变量、修饰函数。
作用:使局部变量的效果和全局变量的效果等价(不管几个括号)。
示例1、没有用static修饰的局部变量
示例2、用static修饰的局部变量后的效果
为什么会导致这种结果呢?????
因为static修饰局部变量,改变了局部变量的生命周期,本质上是改变变量的存储类型。
内存一般指计算机的RAM随机存储器,而计算机的内存一般分为栈区、堆区、静态区。
栈区:主要用来存放局部变量,函数参数等相关临时变量。
堆区:主要用来动态内存分配。
静态区:主要用来存放全局变量,以及static修饰的局部变量。
作用:使全局变量只能在当前源文件(.c文件)使用,不能借助extern在其它源文件(.c文件)使用。
Why???为啥就不行了呢?
本质上原因:全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!
作用:解决不同源文件中全局变量名称重复的问题。
作用:使得函数只能在当前源文件(.c文件)使用,不能借助extern在其它源文件(.c文件)使用。
Why???为啥就不行了呢?
本质上原因:函数,在其他源文件内部可以被使用,是因为函数具有外部链接属性,但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的函数了!
作用:解决不同源文件函数名一致的问题。
前面也说到了include、define不是关键字,是预处理指令。
关于include的使用,比较简单,用来调用头文件。关于define的详细用法如下:
注意:利用define去进行宏定义的时候,不需要在后面加分号,加分号是错误的!!!
#define MAX 25
#define MIN 0
#ifndef _LED_H_
#define _LED_H_
//头文件内容
//.......
//.......
#endif
#define ADD(X,Y) X+Y
#define SUB(X,Y) X-Y
希望我的笔记对你有帮助,有需要的小伙伴可以查看本专栏更多的往期文章
专栏链接: C语言的拾穗之旅_大屁桃的博客-CSDN博客