Linux C 第八课

本文详细介绍了Linux C编程中的关键字,如register、static、const、extern和typedef的用法和作用。同时,讲解了复合数据类型,包括struct结构体、union共用体、enum枚举及其内存对齐和字节序的概念。此外,还提到了宏定义和条件编译在程序设计中的应用。
摘要由CSDN通过智能技术生成

关键字

register
register的作用是请求编译器尽可能将变量保存在CPU的内部寄存器中,这样做的好处是省去了CPU从内存中读取数据的时间,从而提高了程序的运行效率。通常情况下,我们将频繁被访问的变量设置为寄存器变量。使用register关键字要注意一下几点:一、register只能修饰局部变量不能修饰全局变量,因为全局变量可以被多个进程访问,如果设为register变量,只有当前进程知道变量的位置,其他进程都不知道;二、不能用 & 来获得register变量的地址,如果用& ,获得的地址时内存的地址;三、register修饰的变量类型一定要是CPU所能接受的类型。

static
static的作用有三点:一、static修饰局部变量,称为静态局部变量,延长了局部变量的生命周期,使得该变量在整个程序运行结束后再释放;二、static修饰全局变量,称为静态全局变量,只能在本文件中访问,不能再其他文件中访问;三、static修饰函数,称为静态函数,只能在本文件中调用,不能再其他文件中调用;当一个文件中同时出现了非静态函数和静态函数,一定要将静态函数定义在非静态函数之前,或者在非静态函数前先申明静态函数,然后在后面定义静态函数。
另外,静态变量存储在虚拟地址空间的 .data 段,没有初始化时,系统默认初始化为零。
使用static的三种情况:一、当我们希望延长局部变量的生命周期时,用static修饰局部变量;此时静态局部变量的作用与全局变量相同,但静态局部变量比全局变量更加安全;二、当我们想让全局变量只能在本文件中可访问,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值