初识C语言(四)

一    关键字

关键字:C语言'内置'关键字,'直接'拿来使用

了解关键字'目的'

  1. 自定义变量名不要'冲突'

  2. 关键字的'作用'和'适用场景'

①    auto

局部变量、'自动变量'-->省略'auto关键字'

细节: 自动'创建'和'销毁'

②    continue、break

1) switch while for 循环 -->'break'、'continue'

2) case -->'break'

③    extern

引入'外部[其它文件中]'符号-->'变量'、'函数'

④    goto

说明: 在'c/c++'开发中基本不用了,但是在'内核'中还是有该'用法'

goto语句又叫'无条件转移'语句

场景: 条件'逻辑'判断

⑤    register

监控cpu的所有寄存器状态

CPU寄存器深入讲解

linux系统查看cpu状态

寄存器'关键字' --> '类别' --> 皇帝身边的'小太监'

++++++++++数据'存储'地方++++++++++

  1) 硬盘;

  2) 内存;

  3) 高速缓存'cache'-->32M

  4) 寄存器-->'有限个[十几个]'

'金字塔'形状:访问速度'越来越快'、单'越来越贵',所以容量

 备注:寄存器的数据'也来自'高速缓存中,如果没有,则从'高速缓存'中拿

 CPU处理数据速度越来越快,内存的访问速度跟不上 -->整体性能'也不行'

 CPU:中央处理器-->'运算';CPU从内存中拿数据

register int a =10; '建议(编译器自行判断)'定义成寄存器变量-->'场景:频繁使用;比较重要'-->寄存器数量是有限

⑥    符号有符号

1. signed int   -->前面'默认(default)省略'-->'有符号'

  等价:'int'

2. unsigned int -->'无符号整形'-->'没有+、-'区分-->[0,2^n-1]

⑦    typedef

细节: include/linux/kernel.h是'内核的包'中

typeof关键字是'C语言'中的一个'新扩展',这个特性在linux'内核中'应用非常'广泛'

typeof关键字

1) 类型定义: 类型'重定义'

2) 定义新的类型来'代替'已有的类型

3) typedef 语句的'一般形式'

 typedef '已定义'的类型 '新'的类型; 

4) typedef的最'常用'的作用就是给'结构体变量重命名'-->'后续讲解'

说明: 关于'其它'用途'后续'讲解

typedef  unsigned int u_int; -->'别名(alias);小名'

⑧    static关键字

​​​​​​​其它static参考

1)static修饰局部变量

测试: 单步'代码调试'看'效果'

结论: static修饰'局部'变量,局部变量的'生命周期变长';'作用域不变[只能函数内部访问]'

细节: static导致'第一次被初始化',后续的a就是'全局栈'的,'不会再进行'初始化

补充: 静态局部变量'存储于'进程的'全局'数据区,即使'函数返回',它的值也会'保持不变',不能被'作用域'之外的'访问'

2)static修饰全局变量

1. 普通'全局'变量'穿上'static外衣后,它就变成了'新娘',已心有所属

2. 只能被定义它的'源文件(新郎)'中的变量或函数'访问'

备注: 使用extern关键字->声明'外部符号',使用其它文件的'全局变量'

思考: 为什么加了'static',全局变量就'不能'访问了?

原因:'全局变量'加上static,改变的是'作用域'

效果: 让'静态的全局变量'只能在自己所在的'源文件内部'使用

C语言的闭包

闭包就是利用'嵌套函数'这种形式,对于自己'作用域之外'的'变量'进行'操作'

后续面向'对象'的闭包-->lua、groovy'特性'

3)static修饰函数

+++++++++++++++'对比实验'+++++++++++++++

'报错':找不到add符号

1) static修饰函数'改变了'函数的作用域-->'通俗理解'

2) static修饰函数改变了函数的'链接'属性-->'准确'

   static修饰函数之后-->'外部'链接属性 -->变成'内部链接'属性,限制'作用域'

⑨    define定义'常量'和''

1) 定义'标识符常量'

#define MAX 10

​​​​​​​

⑩  杂乱

struct   -->'结构体'关键字

union    -->'联合'/'共用'体

volatile -->后期'讲操作系统会讲'-->'C语言断位'

void     -->'无',函数'没有'返回值

业务网络和管理网络
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值