if (fp!=NULL) { fclose(fp); fp = NULL; }为什么fclose不直接置为null,需要外部置为null?

qq_32745189 2015-11-12 07:07:43
if (fp!=NULL) { fclose(fp); fp = NULL; }为什么fclose不直接置为null,需要外部置为null?
...全文
1786 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-11-12
  • 打赏
  • 举报
回复
引用 3 楼 taric_ma 的回复:
补充一个疑问,我这边 写代码的时候,首先是fopen,例如,if((fp1=fopen("file1","r")) == NULL),这样也就对fp1做了非NULL检查,那么在关闭文件的时候,还用显示的判断fp1 != NULL吗?
判断的目的是避免代码多了之后不小心在多处fclose多次引发运行时错误。
paschen 2015-11-12
  • 打赏
  • 举报
回复
当然你不把他置为空也是可以滴,只是置空是一种好的习惯
  • 打赏
  • 举报
回复
补充一个疑问,我这边 写代码的时候,首先是fopen,例如,if((fp1=fopen("file1","r")) == NULL),这样也就对fp1做了非NULL检查,那么在关闭文件的时候,还用显示的判断fp1 != NULL吗?
赵4老师 2015-11-12
  • 打赏
  • 举报
回复
引用 1 楼 fly_dragon_fly 的回复:
fclose没法设置, 传入的是FILE*, 不是 FILE **
一语道破天机!
fly_dragon_fly 2015-11-12
  • 打赏
  • 举报
回复 2
fclose没法设置, 传入的是FILE*, 不是 FILE **

70,029

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧