使用const char*
选择开放模式而不是enum
的原因是什么原因:
enum open_mode {
READ,
READ_BINARY,
WRITE,
...
};
使用枚举不是更简单吗?
答案 0 :(得分:4)
这是为了实现自由。例如,VC++中的实现可以选择编码,例如:fopen("test.xml", "wt+,ccs=UNICODE")
答案 1 :(得分:4)
原因很可能是历史性的:函数fopen
已经出现在该语言的早期K& R版本中,而enum
仅在ANSI标准中添加到该语言中。
当enum
被添加时,语言已经广泛使用,改变这种重要功能的签名是不切实际的。