(1) 编译器处理方式时间不同 define宏是在预处理阶段展开; const常量是编译运行阶段使用; (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开; const常量有具体的类型,在编译阶段会执行类型检查; (3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存; const常量...
const与宏的区别:1、编译时刻:宏-预编译 const-command+b(编译阶段)编译。 2、宏不会检查代码错误,只是替换,但是const会编译报错。 3、宏的好处:定义代码或字符串、方法、参数 const不能。 坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换。 const作用:限制类型 1.const仅仅用来修饰右边的变量(基本数据...
宏定义的声明周期止于编编译期,const的声明周期处于程序的运行阶段 宏定义不占用内存空间(因为其是在编译期编译进程序的代码段的)。const是分配在堆栈中的,占用内存空间 宏定义无类型。const有数据类型,编译器可以对const常量进行类型安全检查 两者都不可以修改 三、宏操作符(#、##) #:把宏的参数变为字符串 ##...
1,const 常量由编译器处理; 2,编译器对 const 常量进行类型检查和作用域检查; 3,宏定义由预处理器处理,单纯的文本替换,无类型和作用域检查; 为了大家方便理解,下面我们来举个例子来说明情况,不过为了说明c++里面const修饰的变量,本质还是变量,并且只有验证一下c语言里面的const只用在编译过程中有用,在运行期没有...
不同点:作用的范围不同,宏定义的变量在整个程序,而且定义时不需要写出变量类型,const则需要 举个例子,#define N 100和const int N=100;宏定义的变量可以是任意类型,甚至是一个代数表达式 在任意一个函数中都可以使用N,都代表100 而const定义的变量虽然值不能修改,但也只能在定义该变量的函数...
#define定义一个宏时,编译器在预处理阶段,就会将其进行替换。而 const则是定义一个变量。一个常量,...
之前有同学题过这个问题,我就想为何要会提这个问题?大概因为他们都与常量有关吧!define是宏定义,它可以把一个标识符变成一个常量,而const是一个修饰符,它可以修饰一个变量为常类型,使其不可被修改!今天我们就把这两个类型做一个区别。 首先,本质上两者不同,define修饰出来的是常量!并且是真常量!
1.1 宏和const变量的不同 #define 定义的宏常量可以直接使用 #define 定义的宏常量本质为字面量,不占用内存,而const 常量占用内存 1.2 宏与函数不同 - 宏不是函数, 使用宏没有函数的调用过程 - 函数调用先传递参数值,然后跳转执行函数体,最后返回