【发布时间】:2013-09-25 08:04:53
【问题描述】:
为什么 C 中 fopen 的“模式”参数由字符串给出?将它作为位掩码或类似的东西会更有意义(以我的思维方式)。字符串所需的开销是低效且不必要的。
【问题讨论】:
-
您的程序是否曾因解析属性字符串而遭遇严重瓶颈?
-
与打开文件本身相比,我怀疑解析那个小字符串的开销相形见绌。
-
有效积分,但其背后的原因仍未得到解答。除此之外,如果您创建了函数,您是否愿意解析模式字符串参数?我很好奇为什么。
-
@Dayalrai,
fopen(f, "wb")并不比fopen(f, FILE_WRITE | FILE_BINARY)更易读,他的问题对我来说很有意义。 -
A closely related question 询问为什么不使用
enum;答案是fopen早于enum。 K&R1 (1978) 中fopen的示例实现只查看模式字符串的第一个字符,可以是'r'、'w'或'a'。