volatile 和 extern 关键字
关键字 volatile extern
2023-09-14 09:07:06 时间
volatile 三个特性
易变性:在汇编层⾯反映出来,就是两条语句,下⼀条语句不会直接使⽤上⼀条语句对应的 volatile 变量的寄存器内容,⽽是重新从内存中读取。
不可优化性:volatile 告诉编译器,不要对我这个变量进⾏各种激进的优化,甚⾄将变量直接消除,保证程序员写在代码中的指令,⼀定会被执⾏。
顺序性:能够保证 volatile 变量之间的顺序性,编译器不会进⾏乱序优化。
extern
在 C 语⾔中,修饰符 extern ⽤在变量或者函数的声明前,⽤来说明 “此变量/函数是在别处定义的,要在此处引
⽤”。
注意 extern 声明的位置对其作⽤域也有关系,如果是在 main 函数中进⾏声明的,则只能在 main 函数中调⽤,在其它函数中不能调⽤。其实要调⽤其它⽂件中的函数和变量,只需把该⽂件⽤ #include 包含进来即可,为啥要⽤extern?因为⽤ extern 会加速程序的编译过程,这样能节省时间。
在 C++ 中 extern 还有另外⼀种作⽤,⽤于指示 C 或者 C++函数的调⽤规范。⽐如在 C++ 中调⽤ C 库函数,就需要在 C++ 程序中⽤ extern “C” 声明要引⽤的函数。这是给链接器⽤的,告诉链接器在链接的时候⽤C 函数规范来链接。主要原因是 C++ 和 C 程序编译完成后在⽬标代码中命名规则不同,⽤此来解决名字匹配的问题。
相关文章
- 你应该知道的 volatile 关键字
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- volatile关键字到底有什么作用
- Java volatile关键字作用
- C语言volatile关键字详解
- Java并发篇:volatile关键字吐血整理「建议收藏」
- C语言中volatile关键字的使用
- volatile 关键字详解
- 理论:第一章:HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
- 【Java 并发编程】线程指令重排序问题 ( 指令重排序规范 | volatile 关键字禁止指令重排序 )
- 重学JS-7-一图掌握this关键字
- Java学习笔记(Volatile关键字以及原子性)
- static关键字的内存分析详解编程语言
- 掌握Linux:查询关键字技巧(linux查询关键字)
- Oracle的关键概念:洞察数据的奥秘(oracle的关键字)
- 掌握MySQL关键字的字段使用技巧(mysql关键字字段)
- 示Oracle关键解读指南(oracle 关键字 表)
- 利用Oracle关键字搜索,提升查询效率(oracle关键字搜索)
- Oracle关键字如何应对(oracle关键字怎么办)
- Oracle中智能命名提升数据库性能(oracle中关键字命名)
- Oracle禁止使用关键字的注意事项(oracle不认关键字)
- 理解PHP5中static和const关键字的区别
- javascript常用关键字列表集合
- 探讨C语言中关键字volatile的含义
- 深入解析Java中volatile关键字的作用
- C#中var关键字用法分析
- javascript面向对象之共享成员属性与方法及prototype关键字用法