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

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. tab区域折叠

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

  2. [Codeforces 280D]k-Maximum Subsequence Sum(线段树)

    [Codeforces 280D]k-Maximum Subsequence Sum(线段树) 题面 给出一个序列,序列里面的数有正有负,有两种操作 1.单点修改 2.区间查询,在区间中选出至多k个不 ...

  3. [NOIP2016]借教室

    NOIP2012提高组D2T2. 这道题目非常基础,正解貌似是二分+差分数组,在这里提供一种线段树的思路. 很容易发现题目让我们每次修改一段区间,然后我们只需要看每一个区间内有没有负数就可以了.可以用 ...

  4. 小B的询问(题解)(莫队)

    小B的询问(题解)(莫队) Junlier良心莫队 题目 luoguP2709 小B的询问 code #include<bits/stdc++.h> #define lst long lo ...

  5. SVN合并主干分支的方法

    第一步 第二步 第三步 第四步

  6. 21、numpy—Matplotlib

    NumPy Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 P ...

  7. 踩坑,vue项目中,main.js引入scss文件时报错

    当我们在src目录下创建.scss文件,并在main.js中引用,运行时会报: ERROR Failed to compile with 1 errors 5:25:07 PMThis relativ ...

  8. Thymeleaf入门——入门与基本概述

    https://www.cnblogs.com/jiangbei/p/8462294.html 一.概述 1.是什么 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类 ...

  9. docker运行模式图

    docker运行模式图:

  10. NVIDIA Jetson™ TX1 Module

    NVIDIA® Jetson TX1 是一台模块式计算机,代表了视觉计算领域近20年的研发成就,其尺寸仅有信用卡大小.Jetson TX1 基于NVIDIA Maxwell™ 架构,配有256个 NV ...