c语言之关键字

static :

    使用static有三种情况:

        (1)、函数内部static变量,关键在于生命周期持久,它的值不会随着函数调用的结束而消失,

                static修饰的局部变量存放在全局数据区的静态变量去,初始化的时候自动初始化为0;

        (2)、函数外部static变量,即全局变量,这个全局变量不能再被本文件外的其他文件使用,

                即为这个文件的私有变量;

        (3)、static函数,这个函数只能在在本文件内使用,而不能被其他文件使用,即为这个文件

                的私有函数;

const:

        (1)、*前const比如 int const *p;const直接修饰的为*p而*p为一个int型的变量,即*p不

                 能变p可变,变量值不能变但变量地址可变;

        (2)、*后const比如int *const p;const直接修饰的为p而p是一个int型指针变量,即*p可

                  变但p不可变,变量值可变的变量不能变;

       !注意const int a = 10;这时可以用指针的方式来间接的修改a的值,c语言中const是不安

           全的;

extern:

          (1)、可以引用同一个文件下的变量。这个是在先使用某个变量而在之前却未定义,而在

                之后定义时可以用extern;

           (2)、引用另一个文件中的变量或者函数。

register:

            (1)、register意味着这个变量将会被频繁使用,将其保存到cpu寄存器中;

            (2)、不能用&来取register变量的地址,因为它在寄存器中;

            (3)、因为cpu的寄存器是有限的所以register不能无限定义;

            (4)、register变量的必须是一个单一的值,并且长度小于或者等于整形长度;

volatile:

            volatile提醒编译器该变量随时都有可能变化,因此编译后的程序每次需要读取或者存

            储这个变量的时候都会从地址中读取数据。如果没加volatile则编译器可能会优化读取

            和存储,可能暂时使用寄存器中的值。

!欢迎大家指出不足之处

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值