const、define 和 static 的区别】的更多相关文章

目录 define.const static define.const 在 C++ 中,const 和 define 都可以用来定义常量.但是这二者之间有很大的区别: define 的作用 用 define 定义的常量是没有 类型 的,编译器只是把所定义的常量值和这个常量的名字联系起来,编译器在编译的过程中只是把 常量名替换成对应的常量值,所有用到的地方都拷贝替换. const 作用 使用 const 定义的常量是 有类型的,这个值存放在了 内存的静态区域中. 具体来说,二者具有以下这些方面的区…
1.用const定义常量在编译的时候,提供了类型安全检查,而define 只是简单地进行字符串的替换 2.const定义的常量,会分配相应的内存空间.而define没有分配空间,只是在程序中与处理的时候进行替换 具体来说,有如下区别: 1.const定义的常量有数据类型,而define没有 2.const定义的常量分配了内存空间,而define定义的常量却不分配空间. 但是define不仅只是在定义常量时发挥作用,还可以定义带参数的宏,做到一定程度上的泛型.…
const const意味着"只读",欲阻止一个变量被改变,可以使用const关键字 const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p) define #define指令有三种用法: 第一种是定义标识,标识有效范围为整个程序,形如#define XXX,常与#if配合使用 第二种是定义常数,如#define max 100,则max代表100(这种情况下使用const定义常数更好,因为:const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对…
总结const. readonly. static三者区别: (有人问我,看似简单,我也没能立刻回答出来,总结一下,分享一下.) const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享! a.叫编译时常量的原因是它编译时会将其替换为所对应的值: b.静态常量在速度上会稍稍快一些,但是灵活性却比动态常量差一些: c.静态常量,隐式是静态的,即被static隐式修饰过,不能再用static重复修饰, d.在声明时初始化: e…
1.typedef和#define的区别 typedef int* pInt; , b = ; const pInt p1 = &a; //p1是常量指针 pInt const p2 = &b; //p2是常量指针 //这里的const就是拿来修饰p1.p2的,跟pInt没关系 1)作用:typedef定义了一个新的类型别名,而#define(宏定义)只是简单的替换 2)类型安全检查:用typedef定义时有类型安全检查,而#define是简单的替换,没有类型安全检查(所以容易出错) 3)…
总结一下在非类中使用const关键字定义常量时的初始化问题,亲测VS2015.顺便记录#define宏和typedef的区别. 1 首先对const声明的常量的初始化做简单小结: , w2 = , w3 = ; int * const p1 = &w1, P1_1; //p1:指针常量,指针是常量; //p1_1:int型变量 ; //p2:常量指针,指向常量的指针; //p2_2:int const型 ; //p3:常量指针,指向常量的指针: //p3_3:const int型 ; //tem…
[转]C# const和static readonly区别 以前只是知道Const和static readonlyd的区别在于const的值是在编译期间确定的,而static readonly是在运行时计算出其值的.今天看到Resharper智能提示让用 static readonly修饰的field改成const修饰,于是突然想了解一下resharper为什么这么提示,所以整理如下: 我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等…
typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#…
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef ]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#define的用法 #define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些…
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT; typedef    int       ARRAY[10]; typedef   (int*)   pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点. 二.#define的用法 #define为一宏…