博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言支持的四种变量存储类型
阅读量:7236 次
发布时间:2019-06-29

本文共 811 字,大约阅读时间需要 2 分钟。

http://blog.csdn.net/zhandoushi1982/article/details/5425835

一)auto:auto称为自动变量(局部变量)。局部变量是指在函数内部说明的变量(有时也称为自动变量)。所有的非全程变量都被认为是局部变量,所以auto实际上从来不用。局部变量在函数调用时自动产生,但不会自动初始化,随函数调用的结束,这个变量也就自动消失了。下次调用此函数时再自动产生,还要再赋值,退出时又自动消失。

二)static:static称为静态变量。根据变量的类型可以分为静态局部变量和静态全局变量。

     1. 静态局部变量:它与局部变量的区别在于:在函数退出时,这个变量始终存在,但不能被其它函数使用;当再次进入该函数时,将保存上次的结果。其它与局部变量一样。

     2. 静态全程变量:只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全局变量的区别是:全局变量可以被其它源文件使用,而静态全局变量只能被所在的源文件使用。

三)extern:extern称为外部申明。为了使变量或者函数除了在定义它的源文件中可以使用外,还可以被其它文件使用。因此通知每一个程序模块文件,此时可用extern来说明。

比如extern u8 tpwakeupswitch;extern int tpwakeupswitch_read();一定要加上返回类型,亲身碰到没有返回类型,引用过来的变量是很奇怪的值。

四)register:register称为寄存器变量。它只能用于整型和字符型变量。定义符register说明的变量被存储在CPU的寄存器中,定义一个整型寄存器变量可写成: register int a;
      对于以上四种数据的存储位置:register变量存在CPU的寄存器中;auto类型变量存在内存的栈;static型的局部变量和全局变量以及extern型变量(即全局变量),存在于内存的静态区。

你可能感兴趣的文章
POJ 1149 PIGS (最大流)
查看>>
fitnesse - 一个简单的例子(slim)
查看>>
小白也能懂的手写体识别
查看>>
vs中批量删除注释
查看>>
《程序出错后,程序员给测试人员的20条高频回复》
查看>>
SQL SERVER-时间戳(timestamp)与时间格式(datetime)互相转换
查看>>
printk 与syslog
查看>>
[转载红鱼儿]kbmmw 开发点滴:kbmMW客户端提交事务的现场处理
查看>>
PHP中把一个文件夹下的一个文件移动到另一个文件夹
查看>>
关于点击空白关闭弹窗的js写法推荐
查看>>
PAT1009
查看>>
根据抓的包用代码模拟登录
查看>>
html中的src与href的区别
查看>>
Base64编码
查看>>
Installing Chocolatey
查看>>
python3+spark2.1+kafka0.8+sparkStreaming
查看>>
jstl自己定义函数的使用
查看>>
使用Visual Studio Code调试React Native报错
查看>>
FineUI 将不再内置 ExtJS (严格遵守 ExtJS 的开源规则)
查看>>
javascript 中contentWindow和 frames和iframe之间通信
查看>>