c语言关键字

C语言作用关键字**:static const typedef extern register volatile

static:
1.修饰局部变量时(在函数体内):一个被声明为静态的变量在函数过程中值保持不变,使得声明周期延长至程序结束,此时的变量存放区域为数据段上。(从而可以少使用全局变量)
2.修饰全局变量:使得全局变量的作用域在本文件中,不能被其他文件使用
3.修饰函数:使得函数的作用域只在本文件中。(由于在大型项目中,可能有相同的函数名,在函数加上static可以防止函数重名带来不必要的麻烦。如linux内核的函数都是static修饰的)

const:修饰一个变量让其成为只读变量。但是不会使其地址成为只读数据。
const使用判断用就近原则。
其好处:在函数传参时,修饰函数形参,防止实参在函数调用时被意外修改。
**typedef:**给类型重命名,其中特例就是给函数指针重命名
typedef int (*p_func)(int, int)

使用它可以增加代码的可移植性,可读性,开发效率提高,以及增加代码的安全性
1.移植性:在某些机器上,对于缺省定义符号的某种类型,有些机器上默认为有符号,有些机器默认无符号数,当我们代码移植到另外不同机器运行时候,如果使用typedef 给数据类型重命名,只需要直接修改重命名的类型为有/无符号即可。
2可读性:我们可以把一些我们长度,姓名之类的重器名字这样增加了代码的可读性,让别人知道使用变量时候更加明白开发人员的意图,如strlen函数原型返回值就是一个size_t的类型,告诉别人返回的是一个长度类型
3开发效率:对结构体重起名
4代码安全性:代码泄露时候,别人不得而知你的类型是什么,从而增加了安全性。

extern:做外部声明。
用extern修饰的都是声明语句。使用声明是一种良好的编码规范。可以优化编译速度
1.声明全局变量
2.声明函数

rigister

修饰变量,将一个变量尽可能的保存在寄存器里,减少CPU从内存中抓取数据的时间,从而提高代码运行效率。

注意事项:
1.用rigister修饰的变量不可使用取地址符号。(&取的是内存中的地址)
2.不可修饰全局变量,函数。只能修饰局部变量
3.修饰cpu可接受的类型(有些cpu不接受浮点型运算)

volatitle :防止编译器做默认优化
一个定义为volatile的变量是说这个变量可能会意想不到的被改变,这样,编译就不会假设个变量的值。(编译器优化:一个值多次操作都不改变,编译会进行优化,让其放入cou寄存器中)
用例:
1.并行设备的硬件寄存器(如状态寄存器)
2.一个终端服务子程序中会访问到的非自动变量
3.多线程应用被几个任务共享的变量。

C语言中有些关键字还可以一起使用但是rigister跟static不可以
const与volatile(如只读状态寄存器)
等~~~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值