c语言怎样定义volatile数组,程序猿之---C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)...

主要内容:const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰

一、const变量初始化时必须赋值

二、const变量在C++中可以做数组大小元素、在C中不行,因为它是变量

三、const和#define区别:内存分配

四、volatile修饰一些变量:易被操纵系统、硬件、多线程修改的变量

#include

int main()

{

/*

测试1

*/

const int b; // 不初始化会报错

//b = 2;

/* 测试2

*C语言中以下定义数组大小会报错,可看出c语言中const修饰的num是变量,不是常量

* 而C++中则编译通过可以用

*/

const int num = 2;

//int a[num] ={3,4};

/*

测试3

*/

#define M 4 // 宏常量

const int N = 5; //此时并未将N放入内存中,保存在符号表中

int i = N; // 此时为N分配内存,以后不再分配

int I = M; // 预编译起见进行宏替换,分配内存 (M没有类型,怎么分配内存)

int j = N; // 没有内存分配

int J = M; // 再次宏替换,有一次分配内存

/*

测试4

在做下面测试时,vc++6.0一般Debug模式没有优化,但可以同时生成Debug和Release版做测试

*/

int test = 10;

int test_1 = test;

int test_2 = test; // 在这里赋值时,编译器不会生成汇编重新从内存读取test值(在两次赋值间test没有作为左值,否则不优化)

volatile int t;

int t_1 = t;

int t_2 = t; // 在这里赋值时,t重新从内存读取

const volatile int temp; // temp只读,可以表示只读寄存器

}输出:

此例子无输出

原文:http://blog.csdn.net/human_evolution/article/details/41414559

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值