模块化¶
全局变量: 定义在函数体外部的变量
- 生命周期: 从定义处开始,到当前.c结束
- 作用范围: 从定义处开始,到当前.c结束
局部变量: 定义在函数体内部的变量
- 生命周期: 从定义处开始,到当前函数结束
- 作用范围: 从定义处开始,到当前函数结束
声明和定义¶
学习以下内容前我觉得有必要学习一下声明和定义1
声明: 用于说明每个标识符的含义,而并不需要为每个标识符预存储空间
定义: 预留存储空间的声明称为定义
变量的声明和定义 | |
---|---|
点击可跳转到extern 可在下文学习
函数的声明和定义 | |
---|---|
结构体的声明和定义1 | |
---|---|
结构体的声明和定义2 | |
---|---|
结构体的声明和定义3 | |
---|---|
好了,看到这里估计你也能明白了,什么是声明,什么是定义,总结一下:只有当声明也是定义时,声明才可以有初始化值,因为只有定义才分配存储空间。
那为什么要要了解声明和定义呢?因为这样有利于学习static和extern见下文;
#define(预编译指令)¶
格式一: #define
+ 宏名 + 宏体
对于计算机来说,在预处理时刻,宏明就会被宏体替换,并且是原样替换
格式二: #define
+ 宏名
关键字¶
static(静态变量)¶
解释:
- 修饰局部变量: 延长声明周期(同全局变量),作用范围不变(当前函数)
- 修饰全局变量:
私有化,仅仅能被当前.c使用,不能被其它.c借用
- 修饰函数:
私有化,仅仅能被当前.c使用,不能被其他.c借用
内部函数和外部函数¶
函数本质上是全局的,一个函数可以被当前.C文件的另一个函数调用,也可以被其它.C文件调用,但是也可指定函数不能被其他文件调用。 根据函数能否被其它源文件调用,将函数分为内部函数和外部函数。
定义内部函数时,在函数名和函数类型前面加static。
一个工程项目可能需要很多人员的参与,当使用引用其它.c的头文件时,你们使用了相同的函数名, 此时编译就会报错,那么如果在函数名前加上static 私有化 就可以不被其它文件调用了,就防止重名的存在了,但我现在还存有疑问, 就是我是防止重名了,但是我在其他文件中就用不了了,那这个意义是什么呢...意义就是 这个函数、或者变量 只在当前文件中用。 然后就是多写代码多总结!!!
外部函数在下面extern中解释
extern(外部变量)¶
外部变量:
全局变量只能被定义一次,如果其他模块要使用该全局变量,需要通过外部变量的声明。
外部变量的格式: extern 变量名表;
(1) 在定义函数时,如果在函数的最左端加关键字extern,则表示此函数是外部函数,可供其他文件调用。 C语言规定,若在定义函数时省略extern,则默认为外部函数。
(2) 在需要调用此函数的文件中,用extern对函数作声明,表示该函数是在其他文件中定义的外部函数。
外部变量:只起说明作用,不分配存储单元,对应存储单元在全局变量定义时分配。
sizeof(求大小 )¶
首先确定sizeof是关键字,而不是函数,其
创建日期: June 19, 2023