局部变量和全局变量 以及预处理命令

一、局部变量和全局变量

1、局部变量:定义在函数内部的变量,只在本函数范围内有效;

     全局变量:定义在函数之外定义的变量,它的有效范围是从变量定义开始到本源文件结束;

2、标识符的作用域

      (空间角度)全局作用域 / 局部作用域

         如果全局变量没有被初始化,值一定是0;形参,局部变量具有局部作用域。

        (生存期)静态生存期 / 动态生存期

        静态生存期:某个变量的生存期和程序运行周期相同(全局变量,static局部变量),同样如果static局部变量没有被初始化,值也一定是0.

        动态生存期:变量的生存期和程序运行周期不相同,比如局部变量或者在栈区里的变量

3、可见性:在程序运行到某一点时是否可见

        (变量)标识符必须先定义再使用;

        同一作用域当中,不得出现同名标识符;

        在没有包含关系的不同作用域中定义的同名标识符,互不影响;

        在两个或多个具有包含关系的作用域中定义的同名标识符,外层标识符在内层不可见。

4、auto变量,自动为变量分配、销毁空间

5、register变量:变量的空间开在寄存器内,register变量不能取地址(寄存器本身不能寻址)。

6、extern:用extern声明外部变量, 外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。

7、预处理

不带参宏定义:#define N 10;宏名通常都是大写  gcc -E -omain.i main.c(只做预处理命令不编译,到main.i)    所有的预处理命令,都是文本替换,不计算;预处理命令后不加分号。

#define M

Print(“%d\n”,__LINE__);打印行数

Print(“%d\n”,__FILE__);打印文件名

带参宏定义#define ADD(a, b) a + b

8、#include< >    标准库函数

      #include” ”     自己写的头文件,

      头文件尽量包含在源文件里。

9、头文件编写格式:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值