static const volatile
来源:互联网 发布:大庆58同城网络交易 编辑:程序博客网 时间:2024/06/08 04:25
其他文件即使用 extern 声明也没法
使用他。我是一个努力学习的小白,加油!
static
1.只初始化一次(值可以改变)
2.修饰的变量如果未初始化,初始化值为0
3.存放在静态区
4.限制作用域:修饰局部变量时,只能作用在局部(例如在某个函数内)
修饰全局变量时,限制在本文件内,其他文件即使用 extern 声明也没法使用他。
**由于被 static 修饰的变量总是存在内存的静态区,所以即使这个函数运行结
束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这个值。**
#include <stdio.h>static int j;void fun1(void){ static int i = 0; i ++; printf("i=%d\n",i);}void fun2(void){ j = 0; j++; printf("j=%d\n",j);}int main(){ int k; for(k=0; k<10; k++) { fun1(); fun2(); } return 0;}//i和j打印的结果(答案在最后,建议自己想想,然后运行一下啊代码)
const
1.修饰基本简单类型(非指针)变量的值不允许改变:
const int i;int const i;
2.修饰指针
const char *p//指针指向的内容不可以改变。但指针的指向可以改变
char *const p//指针的指向不可以改变,但指针指向的内容可以改变
const char *const p//指针的指向和指向的内容都不可以改变
volatile
防止编译器优化,在学习汇编时,指令取值不一定每次都是在内存中取值,加上volatile可以让指令每次都在内存中重新取值
下面摘自百度文库
简单地说就是防止编译器对代码进行优化。比如如下程序:
XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;
对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器却会对上述四条语句进行优化,认为只有XBYTE[2]=0x58(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一地进行编译并产生相应的机器代码(产生四条代码)。
答案
i:从1到10
j:一直是1;
阅读全文
0 0
- const,static,extern,volatile
- 关键字static,const,volatile
- const,volatile,enum,static
- const ,static 和 volatile
- static,const,volatile
- 关键字:static,const,volatile
- static const volatile
- Volatile/Static/Const/mutable/extern
- auto, static, register, const, volatile
- Static,Const,Volatile面试解答
- static const volatile register使用
- 关键字static、extern、volatile 、const
- C-static,const,volatile,extern
- const static volatile的作用
- struct,typedef,volatile,const,static
- volatile const static与extern
- 关键字static , volatile ,const 解析
- 关键字extern、volatile、const、static
- Binder机制简介
- PAT:B1033. 旧键盘打字(16/20)
- Value okhttp3.internal.http.RealResponseBody@49ebb98 of type java.lang.String cannot be converted to
- deeplearning练手之 transfer learning极速实现 之 猫狗分类器 (keras实现)
- 关于宏中使用do{}while(0)的作用
- static const volatile
- 使用京东云免费云主机搭建CentOS
- springcloud(九):配置中心和消息总线(配置中心终结版) 2017/05/26
- Gym 101623I
- 带裁剪的图片上传功能jquery插件
- Shiro整合Web项目及整合后的开发
- 闲谈一
- Collection 集合,迭代器,泛型
- springcloud(十):服务网关zuul初级篇