属性关键字——auto、static和register

原创 2018年04月17日 19:33:25

        static具有“作用域限定符”的意义,表现在两个方面:1、static修饰的全局变量的作用域只是在声明文件中;2、static修饰的函数的作用域只是在声明的文件中。

        register变量申请的条件是变量的长度必须是CPU寄存器可以接受的值;变量存储在寄存器,那么就不能使用“&”获取register变量的地址。

        视频代码学习:

#include "stdafx.h"

void f1()
{
int i = 0;
i++;
printf("%d\n", i);
}

void f2()
{
static int i = 0;
i++;
printf("%d\n", i);
}

int main()
{
int i = 0;
static int j = 0;
register int k = 0;


for(i = 0; i < 5; i++)
{
f1();
}


for (i = 0; i < 5; i++)
{
f2();
}

    return 0;

}

结果显示:1 1 1 1 1 1 2 3 4 5

        这个示例是为了说明:当子函数第一次被调用时,子函数中定义的静态局部变量会初始化一次,以后再调用子函数的时候,定义的静态局部变量不会再初始化了,会直接去静态区调用静态区中保存的值;此外,子函数定义的静态局部变量的生命周期是全部的程序期间。

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

auto: (1):auto关键字在C语言中只有一个作用,那就是修饰局部变量。 (2):auto修饰局部变量,表示这个局部变量时自动局部变量,自动局部变量分配在栈上。(既然是分配在栈上,说明他如果...
  • if_pointer
  • if_pointer
  • 2016-07-05 21:50:52
  • 312

C/C++——auto,static,register,extern用法

本文总结了auto,register,static和extern的用法,结合变量生存周期和作用域概念对static和extern做了说明,主要对static和变量、函数和类做了详细总结。帮助读者在C/...
  • u010757264
  • u010757264
  • 2015-11-19 19:49:12
  • 1446

C/C++中auto、static、register、extern关键字区别小结

本文介绍了四种存储说明符关键字的区别和使用注意小结
  • FX677588
  • FX677588
  • 2016-09-28 09:24:46
  • 1548

C语言关键字auto与register的深入理解

关键字,又叫保留字,是编译器能识别的特殊单词,每种计算机语言都会有其特定的关键字,C语言中有32位关键字。 问:为什么要有关键字? 答:关键字是程序设计中代码必须包含的部分,编译器在编译C代码的时...
  • u011625768
  • u011625768
  • 2015-07-02 10:26:11
  • 1384

C语言中的auto、 register、extern、static用法

转载地址:http://www.111cn.net/net/c/38998.htm auto、register 两个是用来修饰变量的, extern、static两个都变量函数都可以。 一、 ...
  • s464036801
  • s464036801
  • 2012-08-09 21:18:27
  • 808

简单介绍C语言中auto,register,static,const,volatile,extern等几个关键字的作用

C语言中auto,register,static,const,volatile,extern等几个关键字的作用
  • slience_J
  • slience_J
  • 2016-07-20 10:36:42
  • 436

auto,register,extern,static使用及区别

对于auto变量:是函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给他们分配存储空间,在函数调用结束时就自动释放这些存储空间。   对于register变量:...
  • Doraemon___
  • Doraemon___
  • 2016-09-21 21:00:17
  • 633

c语言变量的存储方式(auto,register,static,extern)及作用域(局部变量/全局变量)详解

在讨论函数的形参变量时曾经提到, 形参变量只在被调用期间才分配内存单元,调用结束立即释放。 这一点表明形参变量只有在函数内才是有效的, 离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不...
  • wtxwd
  • wtxwd
  • 2014-09-06 10:54:12
  • 725

C++中内存模型的几种存储说明符(auto , register, static ,extern,mutable)

关键字提供的存储说明符有auto , register, static ,extern,mutable,C-V限定符有const和volatile. 1.auto用在将变量声明为自动变量,就是留...
  • jiadabin
  • jiadabin
  • 2015-01-28 12:56:50
  • 618

static,auto,register,extern的区别;

#include fun(int x,int y) { static int m = 0; static int i = 2; i += m + 1; m = i + x + y; ...
  • xinianbuxiu
  • xinianbuxiu
  • 2016-09-20 20:42:40
  • 350
收藏助手
不良信息举报
您举报文章:属性关键字——auto、static和register
举报原因:
原因补充:

(最多只允许输入30个字)