第八课-修饰类型,存储类型

关键字 
变量的作用域

修饰类型     long short signed unsigned const volatile
存储类型     auto register static extern

编译器的优化,在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。

当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致。

当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致。

volatile 修饰的变量,直接从原始内存地址取值,不从寄存器取值。

volatile(多线程都修改这个变量时,volatile修饰这个变量,读取变量的时候,强制从内存中更新最新值,获取到最新改变的值。)

[类型修饰符] 类型定义符 [存储类型] 变量名 [= 变量的初始这];

signed int auto a = 0;

long
long long 
short 
int 

auto register static extern
auto register,只能在函数内使用。
static 可在函数内,也可在函数外。
extern 在函数外

全部变量,局部变量

当全局变量和局部变量一样的时候,局部变量优先级高于全局变量,局部覆盖全局变量。
所以尽量不要让全部变量和局部变量名称一致,如果局部变量的值一直在变化的话,全局变量的值也会收到影响。
所以一般全局变量的命名是g_XXX, 局部变量的命名是l_XXX。

scanf 系统函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值