const, static, define 以及inline的区别
来源:互联网 发布:js输入框输入触发事件 编辑:程序博客网 时间:2024/05/18 00:58
const, static, define,inline的使用:
define只是用来做文本替换的。尽量使用const代替宏。
const常量存在与程序的数据段,并在堆栈中分配了空间。const常量有数据类型,而宏常量没有数据类型。编译器可以对const常量进行类型安全检查。
const的作用:
1. 可以阻止一个变量被改变,通常需要对它进行初始化。
2. 对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或同时
指定为const。
3. 在一个函数声明中,const修饰形参,表明它是一个输入参数,其值在函数内部不允许>改变。
4. 对于类的成员函数,指定其返回值为const类型,使得其返回值不为左值。
static 变量的作用:
1. 函数体内的static变量的作用范围为该函数体,该变量的内存只被分配一次。因此,其
值在下次调用时仍维持上次的值。
2. 限制变量的作用域,在模块内的static全局变量可以被模块内的所有函数访问,但不能
被模块外其他函数访问。
3. 限制函数的作用域,在模块内的static函数只可被这一模块的其他函数调用。
4. 在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例
修改了该值,其修改值为该类的其他所有实例所见。
5.在类中的static成员函数属于整个类所拥有,这个函数不接受this指针,只能访问类的
static成员变量。
static全局变量和普通全局变量的区别:
都是静态存储方式;
区别:非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静>态的全局变量在各个源文件中都是有效的,而静态全局变量则限制了作用域,只在定义该>变量的源文件内有效。
inline内联函数:
引入内联函数的目的是替代C语言中表达式形式的宏定义来解决程序中函数调用的效率问题
。
1. inline定义的类的内联函数,在使用时直接进行替换(类似与宏),效率高。
2. 它是一个真正的函数,会检查参数的类型,进行安全检查。在编译后,把函数体里面的
代码代替函数名,不需要像普通函数那样保存现场等。
3. 不能含有递归函数,以及含有while,switch等结构。应该先定义后使用。
4. 宏是在预处理时进行的,内联函数是在编译时进行的。都是进行代码的替换。
5. 内联函数的缺陷是:太多的内联函数会造成代码膨胀。
备注:参考了很多网上的博客文档,非常感谢那些大牛们。
希望大家多多指教。
- const, static, define 以及inline的区别
- const, static, inline, #define的用法以及关系
- static define const inline的产生背景与区别
- #define inline static const
- static 、const 、 define 、inline
- static,const,inline,define的产生背景
- static、const、define、inline关键字
- static const inline #define enum
- const 、static、define 、inline、votatile
- define与const、inline、typedef的区别
- 请教define,const,typedef,inline的区别
- const\#define\inline的特点及区别
- const、#define、typedef和inline的区别
- C++学习之inline、#define、const和static的解释
- static、const、extern和define的区别
- C++中 #define与const、inline、typedef的区别
- C++中 #define与const、inline、typedef的区别
- const和define区别 static
- shell 例程 —— 解决redis读取稳定性
- HDU 4604 Deque
- Android中添加水平线和垂直线
- JavaScript 文件拖拽上传插件 dropzone.js 学习总结。
- NUPT- DFS 算法题1047
- const, static, define 以及inline的区别
- [Android] How to use github with android studio
- Linux kernel 分析之八:系统调用参数
- zoj 3741 Eternal Reality DP
- 如何根据标签文字获取标签Size
- !HDU 4135 Co-prime-容斥原理-(位运算技巧)
- 使用httpFS访问hdfs
- Selenium学习笔记之005:第一个selenium+python+webdriver脚本
- Qt MVC学习 模型子类化参考(三)