《c语言深度剖析》读书笔记(一)关键字
发布日期:2021-05-13 00:02:00 浏览次数:16 分类:精选文章

本文共 1428 字,大约阅读时间需要 4 分钟。

一、三大常用关键字解析

这里将围绕C语言中的三大常用关键字进行详细讲解

1、auto

auto 是C语言中一个非常基础的关键字,其作用是自动确定变量的类型。编译器会根据变量的初始化内容来推断类型,从而自动为变量分配最合适的数据类型。

用途
自动类型声明适用于那些类型明确却变量名未知的情况。它可以显著简化代码编写,同时减少因数据类型错误导致的bug风险。

2、register

register 用于将变量优化到CPU的寄存器中,以提高访问速度。寄存器访问速度远高于内存,因此将关键性变量放进寄存器可以有效提升程序性能。

3、static

static 是用于限定变量或函数的访问范围。

函数相关
static 函数的可见性仅限于定义所在的文件(即该文件的私有函数),适用于需要对公开接口进行严格控制的场景。
变量相关
静态变量在程序整个运行期间都保持存在,通常用于避免局部变量优化失误导致的内存泄漏。

二、基础数据类型规范

在程序中,数据类型规范直接关系到代码的可维护性和安全性

1、数据类型模具

  • 全局变量命名:大驼峰+Unix风格结合(如Flash_Read()
  • 局部变量命名:小驼峰+Unix风格结合(如data_in
  • 禁止通过大小写区分相似的标识符
  • 函数名不得在程序中重复使用

2、类型命名规范

  • 宏定义、枚举常数、只读变量均采用大写字母+下划线命名
  • 循环变量仅限于i, j, k等常见字母
  • 累加变量常采用a作为数组指标,p作为指针

3、类型初始化

所有局部变量必须初始化,缺少初始化可能导致读取无确定性值

三、关键操作符规则

以下涉及若干特定关键字的操作规则

1、sizeof

  • sizeof可省略变量名计算类型大小,必需带模子计算类型大小
  • 结构体大小计算需考虑偏移量因素

2、signed/unsigned

  • 编译器缺省默认为signed类型

3、if/else语句

  • if判断bool变量可以省去括号
  • float与精度比较需使用括号包围表达式
  • if语句需与else保持一致结构
  • else始终与最邻近if括号结合

4、switch/case

  • 每个case必须带break(除特殊设计外)
  • 保留default分支即使不需要
  • case后只能接整型或字符常量
  • 按执行频率排列case语句

5、循环控制

循环控制需要遵循以下原则确保代码可靠性

  • 合理分层循环结构控制在3层以内
  • 循环控制变量采用半闭半开区间
  • 禁止在循环内修改循环变量
  • for循环适合放置较为稳定的控制变量

四、特殊关键字规则

以下关键字需要特别关注

1、goto语句

推荐避免使用goto,属于低级指令,易导致代码难于维护

2、void类型函数

  • 用于不需要返回值的函数声明
  • 参数及返回值均不得返回void类型指针
  • 返回void需使用return终止

3、const限定符

  • 用于只读变量和常量保护
  • 可用于函数参数避免修改
  • 不可用于递增区间体积

4、volatile关键字

  • 用于保证对特殊地址的稳定访问

5、extern标识

  • 用于标识外部定义的变量或函数

五、结构和并发编码规范

多核程序编写需注意事项

1、结构体和并发

  • 结构体适用于将多个数据元素聚合处理
  • Union适用于频繁不同时用于同一空间的数据

2、枚举类型

  • 非赋值枚举变量可从被赋值开始递增
  • 一般枚举常数不支持调试

3、重定义符号

  • typedef用于给现有类型创建别名,不支持类型扩展

以上为主要技术规范,需在具体开发中兑现和遵守

上一篇:stm32高级定时器pwm调试时输出,复位后不输出
下一篇:STM32外设使用(九) Flash

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月24日 20时23分55秒