程序猿之---C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)
来源:互联网 发布:大数据金融企业 编辑:程序博客网 时间:2024/06/06 00:53
主要内容:const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰
一、const变量初始化时必须赋值
二、const变量在C++中可以做数组大小元素、在C中不行,因为它是变量
三、const和#define区别:内存分配
四、volatile修饰一些变量:易被操纵系统、硬件、多线程修改的变量
#include <stdio.h>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只读,可以表示只读寄存器 }输出:
此例子无输出
0 0
- 程序猿之---C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)
- C语言小细节---------const变量
- 【C++】用const修饰变量与define的区别
- c语言中const修饰指针变量
- Const变量与define之存储
- C语言之变量、常量(define\const)、变量的声明和定义
- C语言中的const变量初始化
- const和volatile同时修饰同一个变量
- const, volatile同时修饰一个变量
- const volatile 同时修饰一个变量
- 用const修饰"记忆变量"。。。
- 用const修饰"记忆变量"。。。
- 关于const修饰变量
- const修饰指针 变量
- const关键字修饰变量
- const修饰的变量
- c语言变量和函数声明的修饰符static,extern,#define,const
- const和volatile变量是否可以同时修饰一个变量
- 安卓创建新工程时的几个选项的说明(http://developer.android.com/)
- node.js 初体验
- Keywords Search
- 区分Activity的四种加载模式
- Android 内存分析
- 程序猿之---C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)
- solr facet
- 3、myeclipse编译/操作时自动保存设置
- [CODEVS1225]埃及分数解题报告
- 很高兴获得了CIKM Competition数据挖掘竞赛的冠军
- php 精简框架
- GDI绘图函数小结
- [学习]第一个iOS小项目:随机点名的LuckyMan
- 8086_proteus_masm配置