C++知识总结(6)
来源:互联网 发布:qq飞车神圣天使数据 编辑:程序博客网 时间:2024/06/07 17:53
26 extern关键字的作用?适用场合?使用注意事项?
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。
27 const关键字的作用?适用场合?使用注意事项?
(1)在C语言中用const去修饰一个变量,表示这个变量是只读的,不可通过显式的调用a去修改a的值,并且此时a仍然是一个变 量,不能等同于常量;
(2)要注意const在声明变量时所处的位置,位置不同,在意义上可能会有很大的不同。如果const在'*'左边,则表示指针指向的变量的值不可变;如果const在'*'右边,则表示指针的值是不可变的;
(3)C语言和C++中的const有很大区别。在C语言中用const修饰的变量仍然是一个变量;而在C++中用const修饰过后,就变成常量了。
28 定义常量时,使用#define还是const
1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。
const定义的常量,在程序运行时在常量表中,系统为它分配内存。
2.define定义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。const定义的常量,在编译时进行严格的类型检验,可以避免出错。
3.define定义表达式时要注意“边缘效应”,例如如下定义:
#define N 2+3 //我们预想的N值是5,我们这样使用N
int a = N/2; //我们预想的a的值是2.5,可实际上a的值是3.5
29 typedef关键字的作用?适用场合?使用注意事项?
C 语言提供了 typedef 关键字,可以使用它来为类型取一个新的名字。
typedef 与 #define 的区别:
#define 是 C 指令,也用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
30 voliate关键字的作用?适用场合?使用注意事项?
"易变的” 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用valatile,则编译器将对所声明的语句进行优化。(简洁的说就是:volatile关键词影响编译器编译的结果,用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错)
- C语言知识总结(一)
- c语言知识总结(一)
- C语言知识总结(二)
- C语言知识总结(三)
- C一些知识总结
- C一些知识总结
- keil c 知识总结
- c语言 知识总结
- keil c 知识总结
- C Assignment2 知识总结
- C语言知识总结
- C高级知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- c语言知识总结
- 新版jmeter图形化报告解析
- [Leetcode] 2, 92, 86
- 软件测试过程及其管理
- HDU 1284 钱币兑换问题(完全背包)
- Android 基于Gridview 实现日历选择,扩展性高,要自行扩展
- C++知识总结(6)
- codeforces 838D D. Airplane Arrangements 构造法 推公式
- 数据结构实验之图论七:驴友计划
- 机器学习算法常用指标总结
- java 写一个可以给斗地主玩家随机发牌的程序。
- Go 的并发 Concurrency
- ffmpeg通过rtsp获取H264裸流并保存到mp4文件
- 个人介绍
- java中bio,nio,aio详解