对内存资源存放位置的限定

1. auto

  默认值---分配的内存都是可读可写的区域

  auto int a;

  区域如果出现 {} 我们认为在栈空间

2. register

  register int a; 限制变量定义在寄存器上的修饰符

  定义快速访问的变量,放在寄存器内计算速度更快!

  编译器会尽量的安排CPU的寄存器去寄存这个变量a,如果寄存器不足时,变量a还是会被放在存储器中。

  内存(存储器)            寄存器

3. static

  静态

  应用场景:

    修饰3种数据

    (1) 函数内部的变量 (修饰局部变量)

      int fun()

      {

      int a ;   =====>>static int a;  //会改变该变量的生存期,static局部变量只被初始化一次,下一次调用依上一次的结果值

      }

    (2)   函数外部的变量(修饰全局变量)

      int a;===========>> static int a;  //会限制全局变量的使用范围,他的作用域就是定义他的源文件,其他源文件无法调用

       int fun()

        {

        }

    (3) 函数的修饰符(工程中用的较多) //会改变这个函数的使用范围,其他文件不能调用这个static函数

      int fun();   =====》static int fun();

https://blog.csdn.net/qq_37858386/article/details/79064900

4.const 只读变量的定义

  只读的变量,不允许再次赋值。const修饰的变量(全局或局部)生命周期是程序的整个运行过程。

这时候会疑惑const和define的区别,两个生命周期都是程序运行过程,但是我们可以初步理解区别在于define宏定义的是常量,可以被修改;但是const修饰的是只读变量,不可修改。

  const int a = 100;

http://c.biancheng.net/view/217.html

5.extern

6. volatile

  告知编译器编译方法的关键字,不优化编译

嵌入式C语言3.4 关键字---类型描述符auto/register/static/const/extern/volatile/的更多相关文章

  1. C语言中关键字auto、static、register、const、volatile、extern的作用

    原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.exter ...

  2. 嵌入式C语言3.2 关键字---自定义数据类型

    1. struct 结构体 基本语法 struct myabc{ unsigned int a; unsigned int b; unsigned int c; unsigned int d; } 调 ...

  3. 嵌入式C语言3.5 关键字---运算符

    1. 算数运算符 + -                    A +/- B 要求A,B数据类型一致 * 乘法   / 除法    %取模 乘法CPU可能需要多个周期,甚至需要利用软件的模拟方法来实 ...

  4. 嵌入式C语言3.3 关键字---逻辑结构

    1. if  else if(条件表达式){ ****;} else {xxxxxx;} 2. switch    case    default 3. do   while   for 4. con ...

  5. 一、JavaSE语言基础之关键字与标示符

    1.关键字   所谓关键字指Java中被赋予了特殊含义的单词或字符,Java中常见的关键字共53个,不需要进行记忆,在写代码的过程中会逐渐接触. 2.标示符   标示符,简单来说就是名字:其最大的作用 ...

  6. swift的类型描述符

    Metatype Types A concrete or existential metatype in SIL must describe its representation. This can ...

  7. C语言关键字:auto、static、register、const、volatile 、extern 总结 <转>

    auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...

  8. 2、C语言关键字-auto register static

    文件限定符的作用: 1.auto : 局部变量,修饰的变量在栈中定义.动态内存,随着函数的结束,变量占用的内存空间也随之释放. 2.register : 寄存器变量,请求编译器将此变量存于cpu寄存器 ...

  9. Java描述符(修饰符)的类型

    以下内容引用自http://wiki.jikexueyuan.com/project/java/modifier-types.html: 描述符(修饰符)是添加到那些定义中来改变他们的意思的关键词.J ...

随机推荐

  1. Java并发编程:Concurrent锁机制解析

    Java并发编程:Concurrent锁机制解析 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: # ...

  2. P1021 邮票面值设计(dfs+背包dp)

    P1021 邮票面值设计 题目传送门 题意: 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15N+K≤15)种邮票的情况下 (假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大 ...

  3. P4195 【模板】exBSGS/Spoj3105 Mod

    传送门 首先要懂得 $BSGS$,$BSGS$ 可以求出关于 $Y$ 的方程 $X^Y \equiv Z (mod\ mo)$ 的最小解,其中 $gcd(X,Z)=1$ $exBSGS$ 算是 $BS ...

  4. hud2243 考研路茫茫——单词情结

    考研路茫茫--单词情结 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...

  5. ES6——变量

    ES6变量: 1.var 可以重复声明: 无法限制修改: 没有块级作用域:(如,{...},if(){..} ...) 2.let 不可以重复声明,变量—可以重复修改,有块级作用域: let a = ...

  6. Python内置函数(19)-slice

    官方文档 class slice(stop) class slice(start, stop[, step]) Return a slice object representing the set o ...

  7. python类中方法__str__()和__repr__()简单粗暴总结

    在交互式模式下,类中同时实现__str__()和__repr__()方法: 直接输入实例名称显示repr返回的类容: 用print打印实例名称显示str返回的内容: >>> clas ...

  8. 系统调用的API以及汇编代码实现

    作者:严哲璟 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统调用过程为 ...

  9. CSS实现三级菜单[转]

    头部导航条布局 html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  10. Tab选项卡 延迟切换效果js实现

    try.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...