C、C++其他关键字详解
其它关键字
const
- 作用:
const
用于声明常量,表示变量的值不可被修改。 - 示例:
1 |
|
sizeof
- 作用:
sizeof
用于获取数据类型或变量占用的内存字节数。 - 示例:
1 |
|
typedef
- 作用:
typedef
用于创建自定义数据类型的别名。 - 示例:
1 |
|
- 另一个示例:
1 |
|
volatile
- 作用:
volatile
用于告诉编译器该变量的值可能在编译器控制之外的情况下发生变化(被修改),因此不应进行优化。 - 示例:
1 |
|
何为“不应进行优化?”
具体来说,不进行优化意味着编译器不会对这些变量的读取和写入操作进行任何形式的优化,以确保它们在程序中的每次引用都反映其实际状态,而不会被优化掉或重排序。
通常情况下,volatile
用于描述那些可能被外部因素更改的变量,如硬件寄存器或多线程程序中的共享变量。
这些变量可能在程序之外的上下文中被更改,例如硬件设备可能会更新某个寄存器的值,或者在多线程环境中,一个线程可能会更改另一个线程正在访问的共享变量。
因此,编译器不能对这些变量的操作进行优化,以确保程序的行为是可预测的。
1 |
|
如果不将 sensorValue
变量声明为 volatile
,编译器可能会认为 reading
的值在循环中不会改变,从而进行优化,导致不正确的行为。
总之,volatile
关键字用于告诉编译器不要对其修饰的变量进行任何优化,以确保这些变量的值在程序中的每次引用都是最新的。
goto
- 作用:
goto
用于实现无条件跳转到程序中的标签位置,但通常不推荐使用(goto语句的随性跳转会极大的降低代码可读性,对维护不利,且可能造成逻辑混乱)。 - 示例:
1 |
|
总结
一般来说,应该尽量避免使用 goto
,因为它可以导致代码难以理解和维护。
初学者通常不需要使用 volatile
,而应当谨慎使用 typedef
const和
sizeof` 是C语言中非常常见和有用的关键字
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 洛屿的小站!
评论