...大约 2 分钟
什么是状态机?
定义:
状态机
由状态寄存器
和组合逻辑电路
构成,能够完成根据控制信号
按照预先设定状态进行状态转移
等特定操作的控制中心.分类:
- 输出只和状态有关而与输入无关,称为
Moore状态机
. - 输出与状态和输出均有关,称为
Mealy状态机
.
- 输出只和状态有关而与输入无关,称为
BIOS和UEFI以及firmware
BIOS是一组固化到主板ROM上的程序,是众多firmware的一种.
UEFI和BIOS的区别:
UEFI BIOS 开发效率 开源,标准接口,用C语言编写 闭源,接口混乱,主要由汇编编写 性能 异步+时钟中断 中断机制 拓展和兼容性 模块化驱动设计 静态链接 安全 安全 不安全 其他 支持大于2T的驱动器 不支持大于2T的驱动器
静态加载和动态加载的区别
单步调试和单步跳过的区别
- 单步调试: 当调用函数时,会进入函数内部,依次执行每条语句.
- 单步跳过: 当调用函数时,不会进入内部,而是直接返回结果.
附加到进程
在工程比较庞大时,通过源代码调试会非常消耗时间,使用附加到进程的方法可以缩短调试时间和调试范围.
pragma once和ifndef的区别
- ifndef支持更老的编译器,而pragma one则较新
头文件注意事项
- 当一个文件引入了多个头文件,若有两个头文件中有相同名称的变量或类时,会在编译期报重定位错误。
- inline函数的定义应该放在头文件中,与宏定义类似,inline需要在调用处被展开,所以编译器必须随处可见内敛函数的定义。
- 预编译头:include了很多头文件的头文件,叫做预编译头。
为什么include不建议放在头文件中
C++命名方法
- 大驼峰命名法:每个单词首字母大写,StudioName
- 小驼峰命名法:第一个单词首字母小写,其余单词大写,studioName
- 下划线命名法:字母全小写,使用下划线连接,studio_name
- 匈牙利命名法:变量名=属性+类型+对象描述
- 属性:
g_
全局变量,c_
常量,m_
类成员变量,s_
静态变量 - 类型:数组a,指针p,函数fm,空v,长整型l,布尔b,字符串str,字符c,整型n,计数cnt,无符号u等
- 描述:首字母大写
- 属性:
typedef和typename关键字
Powered by Waline v2.15.6