这个小问题这么久我一直没有彻底想明白。
现在确认了。
因为枚举其实是常量,它不是变量。
就是说,它其实和宏没有太大区别,我试图看 《ANSI C标准》这本书——一份文档的中文翻译。
这份文档我搜索了 枚举 这两个字,基本上都带上了 常量 的描述。
当然,我匆匆搜索着看,其实并没有确切,那么,枚举这个常量和 const 以及宏 的区别到底是什么?
但是很显然,它是常量,最大的一个说法就是
你enum 了 MONDAY是1以后,你不可能给MONDAY赋值成其他数值,由此可见,它和我们平时熟悉的C变量完全是两回事。
——当然,以后我再enum的时候,也就会全部用大写了,也就是宏那个形式。
但这样一来,也就是说,用enum来做用户定义的数据类型,真的意义不大,至少它不能提供 C编译器层面的检查。
如果想实现这个目的,得另外想办法。或者利用一定的人为检查手段。