为什么fopen()使用字符串而不是枚举?

问题描述 投票:0回答:1

在C中,要指定如何打开文件,请使用字符串,例如“ r”,“ w”等。为什么不使用枚举?枚举可以与switch语句一起使用,因此它们将运行得更快。为什么fopen使用字符串而不是枚举?问题很简单。

c string enums fopen
1个回答
0
投票

因为fopen可以与标志的组合一起调用,例如:

FILE *fp = fopen("MyFile", "wb+");

您可以通过将|组合在一起的二进制标志来实现类似的效果,备用接口可能如下所示:

FILE *fp = fopen("MyFile", F_WRITE | F_BINARY | F_UPDATE);

或者类似的东西,但是比使用字符串还笨重吗?

在任何情况下,枚举都不适合,因为对于每种可能的选项组合,您都必须拥有唯一的枚举,这确定地笨拙且难以为实现编写代码。

© www.soinside.com 2019 - 2024. All rights reserved.