#define 最简单,但易出错,慎用,const 类型安全,功能强大,enum 用于定义一组相关常量。在实际开发中,根据具体需求选择合适的关键字,可以写出更加优雅的代码。 1、#define 宏 #define是 C 和 C++ 中的预处理器指令,它用于在编译前对常量或表达式进行替换。宏定义通常不进行类型检查,直接在编译时替换为指定的值。简...
一、简述三种关键字使用 const:定义常变量,即只读变量。 enum:枚举类型,在实际问题中有些变量的取值被限定在一定的范围内,例如一个星期七天,一年十二个月,如果把这些变量说明为整形,字符型等类型显然是不合适的,为此有了enum枚举类型,在枚举类型的定义中列举出所有可能的值,被说明为该类型的变量取值范围不能超过定...
C / C ++中的enum vs. const vs.#define 在这里,我们将看到C或C ++程序中的enum,const和#define之间有什么区别。当我们必须决定选择它们时,这三者会造成一些混乱。现在让我们看看这三件事是什么。 const或静态const const是常量类型数据,或者static const是常量,但存储说明符是静态的。因此它将保持活动状态,直...
首先,const是修饰,enum是类型定义,这个理解是对的。enum是定义一个新的类型,可以用这个新的类型来定义变量,而且变量的取值范围理论上应该只在enum指定的常量值中去取。就两都都可以定义常量这一点来看,区别是很明显的,enum定义常量,但这些常量本身只能是整型值。const是可以指定任意类型的数据为常...
#define、const和enum C语言常量: 1、const和#define的区别: const定义的只读变量从汇编角度来看,(使用const变量时)只是给出了对应的内存地址,而不是像#define一样给出的是立即数,所以,二者有有以下几个区别: ① const定义的只读变量在程序运行过程中只有一份拷贝,而#define定义的宏常量在内存中有若干个拷贝。
C语言中的const只是让变量变为只读属性,其本质还是变量,不是真正意义上的常量(只有enum枚举定义的才是常量). 注意:const变量不能被直接赋值,但是可以通过指针来修改const变量. 由于const局部变量会存在栈里,而const全局变量会存在只读存储内存上 所以我们可以通过指针来修改const局部变量,但是修改const全局变量,会使程序...
条款02:尽量以const,enum,inline替换 #define “宁可以编译器替换预处理器”: 一、宏定义的名字被编译器看不到: 二、关于class常量 三、宏不注重作用域 四、theenumhack 所以,如果我们如果不想别人获得一个指针或引用指向你的某个整数常量,enum可以帮助你约束。 五、宏定义max函数的缺陷 宏只是单纯的替换总结:...
<Effective C++>条款02:尽量以const,enum,inline替换#define 今年8月在HX实习时,组长要求实习生每周要进行代码和编程知识的分享,作为组内为数不多的C++er,想来想去还是总结整理一下Effective C++里的条款,也算自己再进行一遍复习。 过往我们在C中定义一个常量时,往往使用#define宏定义的方式来进行。为什么呢? ....
//C++ enum Color { blue, green, IDL_ENUM_Color = 99999 }; Copied! 12 # IDL 定义示例接口定义语言(IDL)字符串类型在 idl 文档中定义(以结构体为例):const long MaxLen = 4; enum Color { blue,green}; struct UserDataType{ Color c; long l; }; Copied! 123456...
C 语言中的关键字还是挺多的,比如经常看的类型关键字,如 int、char、float、struct、union、enum等;判断结构和循环结构的关键字,if、else、for、while等等;还有类型定义关键字 typedef。本篇文章来和大家来介绍 const 和 register 关键字。这两个又叫做修饰符,用来修饰变量的,让普通的变量产生特殊的意义。1....