枚举和#define宏之间的区别

news/2024/5/18 22:37:20 标签: , 枚举, #define

(1)从处理过程的角度看:
#define是由编译预处理器在预编译处理时处理的,而且只做简单的字符串的替换。枚举常量则是在编译的时候确定其值的。


(2)从调试的角度看:
通常情况下,在编译器里,可以调试枚举常量,而不能调试常量。


(3)从数据的类型看:
#define可以编译任意类型的常量,而枚举只能是定义整型常量。


(4)从代码编写角度看:
枚举可以一次定义大量常量,而#define只能一次定义一个。


(5)从可维护性来看:
枚举可以集中管理数据,具相同属性的整形数据可使用枚举枚举可实现取值的自增,也可指定每个枚举的值,编写代码跟容易,相对来说能减少出错的机会,也便于代码的后期维护和修改。


http://www.niftyadmin.cn/n/1397427.html

相关文章

如何简单的判断机器的大小端字节序

大端字节序:高字节存放在低地址,低字节存放在高低址 小端字节序:低字节存放在高低址,高字节存放在低地址大小端字节顺序它是CPU的属性,所哟不同的CPU的大小端字节顺序也不同,移植的时候需要先判断当前的CPU是大端还是小端字节序,如果不同则移植需要转移字节序 int num …

my_strncmp的写法

strncmp 函数的分析 1 函数原型 extern int strncmp(char *s1, char * s2, int n); 2 函数用法 #include <string.h>3 函数功能 比较字符串s1和s2的前n个字符。 4 函数说明: 当s1 当s1=s2时,返回值=0当s1>s2时,返回值>05 函数源码 int my_strncmp ( char * …

野指针与内存泄露

野指针的成因主要有两种 (1)指针变量没有被初始化,任何指针变量刚被创建时不会自动生成NULL指针。它的默认值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存 例如: char *p = NULL; char *str = (char…

my_printf的实现小例子

my_printf的实现小例子

C++学习之旅记录hello world

一个很有意思的故事,有一个程序员老了,闲来无事的他开始找自己的兴趣爱好。他发现写毛笔字是一个非常不错的休闲娱乐方式,于是它买来了文房四宝。然后准备好一切就绪工作,大笔一挥写下了一个字符串“hello world!”哈哈,我还是来写我的第一个 C++ hello world 吧 从输入…

vim分屏操作

启动分屏 1.使用大写O参数进行垂直分屏 $ vim -On file1 file2 ...2.使用小写o参数进行水平分屏 $ vim -on file1 file2 ...注: n是数字,表示分屏的数量 关闭分屏 1.关闭当前窗口 ctrl+w c2.关闭当前窗口,如果只剩最后一个,则退出vim ctrl+w q编辑中分屏 1.上下分割当前…

C++学习之旅get、getline的用法

C++学习之旅get、getline的用法 面向行的输入:cin.getline()。 该函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法,可以使用cin.getline().该函数有两个参数。第一个参数是用来存储输入行的数组名称,第二个参数是要读取的字符数。如果这个参数…

PCB设置参考规范

1、 所有的晶体和晶振下面第二层没有信号线的过孔和走线. 2、走线不可以出现任意角度线,我们以45和135为标准3、同一网络的两根线交叉时,不要交叉成直角和锐角,可以 用45或135线过渡4、pad拉线形式5、所有通孔不得上焊盘&#xff0c;保证通孔距离焊盘2mil或以上&#xff0c…