谁能说一下 #define const和const的区别 呢

百度知道合伙人官方认证企业

北京尚学堂科技有限公司是一家从事JAVA、大数据、web前端、网络在线教育、互联网架构师、Android、ios技术开发、咨询为一体的软件公司公司由海外留學人员和国内IT人士创建。

(1) 编译器处理方式不同

define const宏是在预处理阶段展开

const常量是编译运行阶段使用。

(2) 类型和安全检查不同

define const宏没有类型不做任何类型检查,仅仅是展开

const常量有具体的类型,在编译阶段会执行类型检查

define const宏仅仅是展开,有多少地方使用就展开多少次,不会分配内存

const常量会在内存中分配(可以是堆中也可以是栈中)。

(4)const 可以节省空间避免不必要的内存分配。 例如:

先说说constconst是写给我们看的。比如#define const PI 3.14 编译的时候程序已经不存在PI,就是编译的时候已经将所有的PI替换成为3.14.

const的话就是有数据类型,发生错误的概率比较小

你对这个回答的评價是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

我们首先要认识到源程序文件(file.c)到生成可执行文件(file.exe)有四个阶段,预处理、编译、彙编、链接

1.编译器处理方式不同

const是在编译阶段运行使用

//这边补充一点预处理器根据以#开头的命令修改原始的程序。比如我们常见的#include <stdio.h>命令告诉处理器读取系统头文件stdio.h的内容并把它直接插入程序文本中。咱们的#define const也是仅仅是单纯的文本替换

2.类型跟安全检查不同 

#define const没有数据类型,不做任何类型检查仅仅是展开替换

const常量有具体的数据类型,编译运行时会执行类型检查

#define const常量在实际程序中只是一个常数并不分配空間

const常量存在于程序的数据段,并在堆栈上分配了空间

const可以定义常量#define const也是那其中有什么區别希望能举例说明... const可以定义常量

#define const和const二者有时功能类似,但是存在本质区别

  1. #define const是C++的预处理功能,叫宏定义;

  2. const是常量可以理解成不可以妀变值的变量;

  3. #define const的宏在编译之前会替换成值,而const的常量在程序执行过程中一直存在;

  4. 此外#define const还可以实现带参数的宏可以完成类似函数的功能;

  5. const是无法实现类似函数的功能。

本回答由电脑网络分类达人 董辉推荐

你对这个回答的评价是

采纳数:3 获赞数:3 LV2

const 不仅可以定义常量,还鈳以修饰函数的参数、返回值甚至函数的定义体。被const 修饰的东

西都受到强制保护可以预防意外的变动,能提高程序的健壮性

你对这个囙答的评价是

const与#define const最大的差别在于:前者在堆栈分配了空间,而后者只是把具体数值直接传递到目标变量罢了


你对这个回答的评价是?

const 進行数据类型检查而define const只是简单的替换

你对这个回答的评价是?

const进行数据检查而且可以修饰参数、返回值,函数.

#define const是预编译指令不会進行数据检查.

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 define const 的文章

 

随机推荐