枚举enum与#define 宏的区别?
枚举enum与#define 宏的区别?
1)#define 宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。
2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量。
3)枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。
4)枚举可以自增1,这样不用每一个值都定义,而宏必须每个值都定义。
5)枚举是一个集合,代表一类值,像你代码中的颜色归为一类,方便使用,而宏不能形成集合。
6)enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
sizeof(ColorVal)是4,因为ColorVal是一个枚举变量,而枚举变量代表一个整数(如ColorVal = RED),而整数是4个字节。
枚举enum与#define 宏的区别?相关推荐
- iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别
1.enum可以声明一般类型和位掩码(bitmasked)类型 例如: enum Test{// 一般枚举 TestA, TestB, TestC, }; enum{// 匿名枚举 TestA, Te ...
- 枚举(enum)、宏定义(#define)、结构体(struct)的拾遗
1.宏定义 1.1.不带参数的宏定义 #define 标识符 字符串 例如:#define PI 3.1415926 说明: (1)宏名一般习惯用大写字母表示,但并非规定,也可以用 ...
- 深入理解C语言——#define宏和枚举的区别
(1)从处理过程的角度看: #define宏是由编译预处理器在预编译处理时处理的,而且只做简单的字符串的替换.枚举常量则是在编译的时候确定其值的. (2)从调试的角度看: 通常情况下,在编译器里,可以 ...
- const常量与define宏定义的区别
#define RADIUS 100; const float RADIUS = 100; (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行阶段使用. ( ...
- typedef与#define宏区别
先让我们了解一下typedef的功能,typedef简单来说就是给类型取一个别名: 如 typedef int New 那么int就有一个别名叫New了,以后size就和int这个类型一共用法了. ...
- define宏定义和const定义之间的区别
define部分: 宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段.(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议.) 宏的语法为: #define 宏名称 宏值 注意,宏定义不 ...
- C语言基础知识之define宏定义表达式,undef,内存对齐,a和a的区别,数组知识点,int (*)[10] p,二维数组参数与二维指针参数,函数指针数组,常见的内存错误及对策
一.用define宏定义表达式 1.定义一年有多少秒: #define SEC_A_YEAR 60*60*24*365 //上述描述不可靠,没有考虑到在16位系统下把这样一个数赋给整型变量的时候可能会 ...
- const与#define宏定义的区别——C语言深度剖析
const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静态区),而#define定义的宏常量在内存中有若干个拷贝. #define宏是在预编译阶段进行替换,而const修 ...
- #define宏加括号和不加括号的区别
#define 宏是在代码中不加任何验证的直接替代,当宏中包含运算符时要在最外层加括号,不然可能会出错 下面使用一个简单的例子来验证一下,代码中定义一个求两个数中最大数的宏: MAX_wrong在外层 ...
最新文章
- 从.NET1.1升级到.NET2.0时出现的PInvokeStackImbalance错误
- 简单探讨TypeScript 枚举类型
- Tech ED的课程和动手实验营讲义已经发布,需要的赶紧去下载
- Asp.Net站点整合Discuz论坛实现同步注册和单点登录
- 自由自在休闲食品实现奶茶妹的创业梦
- java 获取服务器硬件_dell服务器远程获取硬件状态
- 找到一个比较熟悉Go语言的国内博客
- localhost可以访问 ip不能访问_为啥用 ip 不可以访问知乎,而百度却可以?
- Spring(三)Bean继续入门
- C 线程同步的四种方式(Linux)
- NodeManager节点启动报错内存不足
- Android手机音量变大器,音量扩大器:安卓大音量设置技巧
- 插图详解Python解决汉诺塔问题
- 毕业论文选题方法和论文各部分写作技巧
- status计算机语言,status 在c语言中的用法?请高手指教、、、、谢谢
- 文字翻译软件哪个好用?亲测好用的软件分享
- shell-定时备份数据库发送至邮箱
- Vue学习之认识到应用(三)
- 计算机基础实验测试题第一章(悄悄变强秘籍)
- MHDD硬盘坏道检测修复教程(转)