C语言的enum类型,特别适合给事物标识类别。
比如人有两种性别男女
系统中有几种字体
留学生的国籍等
反正给事物划分类别,的都可以使用。
枚举型变量也适合给水果标示类别从功能上来说,不采用enum类型,
直接定义一个int型变量,
再定义#define宏,也能起到同样的作用
但是采用enum会更方便编程,更适合我们的思维习惯。
定义成整型,赋值时,任意整数值,编译时都不会有警告提醒,搞成enum,乱赋值会有提醒。
枚举的类别,用enum写程序时,都在一起,代码看起来也清楚。
如果搞成宏,和其他宏混在一起,不如enum得清楚。
其实编程语言的好多机制不是从功能上考虑的,
而是从方便编程,符合人的自然思维习惯,
方便编程角度考虑的。
比如说c++的函数名重载
在c语言中,
如果用函数来实现两个数相加
那两个整数相加,两个浮点数相加。
得用不同的函数名来命名。
而用c++两个不同形式参数的函数,可以命名为同一个函数名。
在调用时,具体调用的哪个,编译器会根据实际参数的类型,来确定。
这样更符合两数相加,同一个函数名的思维习惯。
同样的,还有c++的运算符重载,
有了运算符重载,原来需要用函数名表示的功能,可以用自己喜欢的运算符来表达。
还有c++的引用,
在c语言中,需要传递变量地址的实参
可以定义函数形参为引用,这样传递实参时,只要直接写变量名就可以了,不需要写取地址运算符。
任何东西都是双刃剑,编程语言灵活了,
实现一个功能有多种方式
程序员可以按自己喜欢的方式写程序
生产效率或许有提升
但是别人看懂他写的程序,相对就比较费劲了。
c++没有Java流行,或许和过于复杂有关系。
现在perl的骆驼书不流行了同样是脚本语言。
Python提倡完成一种功能,只有一种方式。
Perl完成一种功能有多种方式。
现在python成了主流编程语言,
和python写的程序好懂有很大关系。
轨道交通灵活性不大但运费低