在C中,要指定如何打开文件,请使用字符串,例如“ r”,“ w”等。为什么不使用枚举?枚举可以与switch语句一起使用,因此它们将运行得更快。为什么fopen使用字符串而不是枚举?问题很简单。
因为fopen
可以与标志的组合一起调用,例如:
FILE *fp = fopen("MyFile", "wb+");
您可以通过将|
组合在一起的二进制标志来实现类似的效果,备用接口可能如下所示:
FILE *fp = fopen("MyFile", F_WRITE | F_BINARY | F_UPDATE);
或者类似的东西,但是比使用字符串还笨重吗?
在任何情况下,枚举都不适合,因为对于每种可能的选项组合,您都必须拥有唯一的枚举,这确定地笨拙且难以为实现编写代码。