为什么" fopen"函数不使用枚举?

时间:2015-07-15 14:58:33

标签: c stdio

使用const char*选择开放模式而不是enum的原因是什么原因:

enum open_mode {
        READ,
        READ_BINARY,
        WRITE,
        ...
};

使用枚举不是更简单吗?

2 个答案:

答案 0 :(得分:4)

这是为了实现自由。例如,VC++中的实现可以选择编码,例如:fopen("test.xml", "wt+,ccs=UNICODE")

答案 1 :(得分:4)

原因很可能是历史性的:函数fopen已经出现在该语言的早期K& R版本中,而enum仅在ANSI标准中添加到该语言中。

enum被添加时,语言已经广泛使用,改变这种重要功能的签名是不切实际的。