2024-11-29 08:39:42
如果不经常写代码,或者说遇到的编程场合不够多,那么就会感觉,编程语言提供的很多功能没有什么用,但是真相是,语言特性的存在,要用在特定场合,只要当前环境或者场合存在,语言特性就不会被淘汰。
以枚举类型为例,枚举类型应该用在什么场合?用在变量的取值被限定在一个有限的范围内的场合,参考:
linux/net.h 文件中,定义了socket类型如下:
/linux/usb.h 文件中关于 USB接口相关的定义:
至于联合的使用,也有不少,如 /linux/vmw_vmci_defs.h文件中:
由此可见,这些特性的应用还是很广泛的,不存在过时或者淘汰的问题。
2024-11-29 13:33:40
2024-11-29 10:44:10
其实二者都没有被淘汰。枚举类型可以一次声明多个常量。如:enum MaxInputFlags{MAXWORD = 200,MAXLINE = 1000};而联合常用于那些内存较小的机器上,用于共享内存比如:union {int a;char ch;};a与ch共享同一块内存,除此之外还能用于满足内存分配程序的对齐要求:
typedef double Align; //对齐..
//代码改编自《C程序设计语言》
union memory_block_header
{
struct
{
union memory_block_header *next;
unsigned int size;
};
Align x; //强制的内存块的对齐
};
2024-11-29 16:31:28
2024-11-29 09:35:58