【C语言程序设计】知识点汇总2——局部变量与全局变量、编译预处理

简介: 【C语言程序设计】知识点汇总2——局部变量与全局变量、编译预处理

5.4 (*)变量的存储属性


5.4.1 局部变量与全局变量

  • 全局变量,外部变量:不属于哪一个函数,属于一个源程序文件。
  1. 作用域:从变量的定义处开始到本源程序结束
  2. 优点:增加了函数间数据联系的渠道,如果一个函数影响了全局变量的值,其他函数就会使用到这些修改的值
  3. 缺点:过多的全局变量会降低程序的清晰性


5.4.2 局部变量与全局变量重名时

在局部变量作用域内优先处理局部变量,全局变量不起作用。


5.4.3 变量的存储类型

  • auto
  • register
  • static:在函数体内部使用时,称为静态局部变量。

在整个程序运行期间都在内存中的静态存储区占据着永久性的存储单元。

由于不释放这些存储单元,因而可以继续使用存储单元中原来的值

静态局部变量初值是在编译时赋予的,在程序执行期间不再赋初值

对未赋值的局部变量,C语言编译程序自动给他赋初值为0;

  • extern

拓展全局变量的范围,引用另一个文件中的全局变量


拓展

extern介绍好文

static介绍好文


5.5 编译预处理


预处理命令不是C语言本身的组成部分,不能直接进行编译,要在编译前进行“预处理”


  • 宏定义:用一个标识符代替一个字符串

处理过程:在预处理时将宏名替换成字符串的过程称为“宏展开”

不是C语句,所以不用再末尾加分号(如果加了分号,会把分号一起置换)

有效范围:定义命令到本源文件结束,可以用#undef命令终止宏定义的作用域

宏定义也可以嵌套,引用已定义的宏名#define pi 3.14 #define pi2 pi*2

带参数宏定义:替换过程从左向右

目录
相关文章
|
6天前
|
存储 自然语言处理 程序员
【C语言】文件的编译链接和预处理
【C语言】文件的编译链接和预处理
|
5天前
|
C语言 索引
C语言编译环境中的 调试功能及常见错误提示
这篇文章介绍了C语言编译环境中的调试功能,包括快捷键操作、块操作、查找替换等,并详细分析了编译中常见的错误类型及其解决方法,同时提供了常见错误信息的索引供参考。
|
11天前
|
自然语言处理 编译器 C语言
C语言程序的编译
C语言程序的编译
22 2
|
1月前
|
存储 编译器 C语言
|
2月前
|
编译器 C语言
C语言编译详解:GCC分步编译与一次编译多个文件
C语言编译详解:GCC分步编译与一次编译多个文件
117 2
|
2月前
|
Unix 编译器 C语言
C语言中的条件编译:探索编译时的决策
C语言中的条件编译:探索编译时的决策
17 1
|
1月前
|
前端开发 C语言
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
|
2月前
|
算法 搜索推荐 程序员
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
15 0
|
2月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
17 0
|
C语言 网络协议
C语言及程序设计进阶例程-8 预处理之宏定义
贺老师教学链接  C语言及程序设计进阶 本课讲解 宏定义 #include <stdio.h> #define PI 3.1415926 int main ( ) { float r,l,s,sq,vq; printf("please enter r:"); scanf("%f", &r); l=2 * PI *r; s=r * r * PI;
991 0