枚举和一组预处理的#define有什么不同

2023-06-30   


只有很小的区别。C 标准中允许枚举和其它整形类别自由混用而不会出错。(但是, 假如编译器不允许在未经明确类型转换的情况下混用这些类型,则聪明地使用枚举可以捕捉到某些程序错误。)
   枚举的一些优点: 自动赋值; 调试器在检验枚举变量时, 可以显示符号值; 它们服从数据块作用域规则。(编译器也可以对在枚举变量被任意地和其它类型混用时, 产生非重要的警告信息, 因为这被认为是坏风格。)一个缺点是程序员不能控制这些对非重要的警告; 有些程序员则反感于无法控制枚举变量的大小。


相关内容:

  1. 枚举与#define宏的区别
  2. 嵌入式面试常见问题
  3. 如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
  4. Java平台和其他软件平台有什么不同
  5. C和C++经典笔试题附答案解析
  6. 处理职场人际关系的方法