几个关键字的用法

本文详细介绍了C语言中的几个关键关键字的用法,包括`register`(优化变量存储位置)、`_ramfunc`(提升函数执行速度)、`static`(限制变量作用域和生命周期)、`const`(定义常量及指针)、`extern`(扩展全局变量使用域)和`volatile`(确保变量值的即时更新)。这些关键字在嵌入式开发和编程语言中有着重要的应用。

几个关键字的用法:

一、register:

1.用register修饰变量时,尽可能会将这个变量保存在CPU中的寄存器中,而不是通过内存寻址的方式来访问,是为了提高他的运行速率

2.register只能修饰整形和字符型,不能用来修饰浮点形。

3.局部静态变量不能用register来修饰。用register修饰的变量只能是局部变量,不能是全局变量。CPU的寄存器资源有限,因此不可能让一个变量一直占着CPU寄存器

二、_ramfunc

_ramfunc的意思就是把接下来的函数完全从FLASH复制到RAM里面执行,优点就是速度比在FLASH执行快多了,对实时性要求很高的操作有用。比如很多中断函数都会加_ramfunc ,但是RAM是有限的,所以不能把太多的函数都定义为_ramfunc

三、static

1.在函数体中,一个被声明为静态的变量,在这一函数被调用的过程中,维持其值不变(该变量放在静态变量区)

静态局部变量:局部变量添加了static修饰之后,该变量就成为了静态局部变量。我们知道局部变量在离开了被定义的函数后,就会被销毁,而当使用static修饰之后,它的作用域就一直到整个程序结束。因此,在这里static的作用就是限定生命周期

2.在模块中,函数体外,一个被声明为静态的变量可以被模块内的所有函数访问,不能被模块外的其他函数访问,他是一个本地的全局变量。

3.在模块内一个被声明为静态的函数只能被这一模块内的其他函数访问。static的作用就是限定作用域

四、const

1.欲阻止一个变量被改变,可以使用const关键字,通常它需要初始化。

2.对指针来说,可以指定指针本身为const,也可以指定指针指向的数据为const或者同时指定为const

const int *test      test是一个指向常整型数的指针

int *const  test      test是一个指向整型数的常指针

const  int *const  test   test是一个指向常整型数的常指针

3.可以节省空间,避免不必要的内存分配

4.提高运行效率

5.在传参数的时候,用const修饰,防止在传参过程中参数被修改

五、extern

一般用来修饰全局变量,以扩大全局变量的使用域。

1.使得全局变量或者函数在其他文件中可以使用

2.告诉编译器,由extern声明的变量或者函数在其他文件中

六、volatile

用其修饰的变量,是易改变的,即告诉CPU每次用该变量的时候,重新去内存中取,保证用的是最新的值,而不是寄存器中备份。多用于嵌入式开发。举例:

       1.并行设备的硬件寄存器(状态寄存器)

       2.一个中断服务子程序中会访问到的非自动变量

       3.多线程应用中被几个任务共享的变量。

注:资料来源于本文之前学习的笔记

 

 

 

 

 

在多个日志文件中查找指定关键字,以进行故障排查或信息提取,可以通过多种方式实现,具体取决于使用的操作系统和工具。以下是一些常见的方法和命令,适用于Linux系统环境。 ### 使用 `grep` 命令进行多文件搜索 `grep` 是 Linux 系统中最常用的文本搜索工具之一,支持在多个文件中查找特定关键字。以下是几种常用的方式: - **基本搜索** 在指定目录下的所有文件中搜索关键字: ```bash grep "关键字" * ``` - **递归搜索** 如果需要搜索当前目录及其子目录中的所有文件,可以使用 `-r` 参数: ```bash grep -r "关键字" . ``` 其中 `.` 表示当前目录。 - **显示行号** 若希望显示匹配行的行号,可以使用 `-n` 参数: ```bash grep -rn "关键字" . ``` - **忽略大小写** 如果需要忽略大小写进行匹配,可以添加 `-i` 参数: ```bash grep -rni "关键字" . ``` ### 使用 `grep` 显示关键字上下文 有时需要查看关键字附近的上下文信息,以更好地理解日志内容。可以使用 `-C` 参数来指定显示匹配行前后的内容: ```bash grep -rC5 "关键字" . ``` 此命令会在匹配行的前后各显示 5 行内容。 ### 使用 `less` 查看日志文件并搜索关键字 对于较大的日志文件,直接使用 `cat` 可能会占用较多系统资源,因此建议使用 `less` 工具进行查看,并结合其内置搜索功能定位关键字: ```bash less 文件名 ``` 进入文件后,输入 `/关键字` 即可向下搜索关键字,按 `n` 键重复上一次搜索动作,`Shift + n` 则反向搜索。 ### 多个日志文件中的搜索优化 如果需要同时搜索多个日志文件并获取更清晰的结果输出,可以考虑使用 `grep` 的 `-h` 参数抑制文件名输出,或使用 `-l` 参数仅输出包含匹配项的文件名: - **仅输出匹配的文件名**: ```bash grep -rl "关键字" . ``` - **不显示文件名**: ```bash grep -rh "关键字" . ``` ### 示例脚本:批量搜索并输出结果到文件 如果需要将搜索结果保存到文件中以便后续分析,可以使用重定向操作符: ```bash grep -r "关键字" /path/to/logs > search_results.txt ``` ### 总结 通过上述方法,可以在多个日志文件中高效地搜索特定关键字,并结合上下文信息进行故障排查或信息提取。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值