fopen C,声明没有效果?

时间:2012-01-25 16:46:58

标签: c fopen

我有一个错误,我不知道...我试图打开文件写入或读取并检查打开是否成功。但是我得到了这个编译错误......我不知道为什么;;;

FILE * infile;
....
infile = fopen(filename, "w");
if(!infile)
   return NULL;

它给了我这个错误

warning: statement with no effect 
error: expected ';' before 'return'

这绝不是以前搞乱的分号,因为如果我删除那部分代码一切正常。谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

几乎可以肯定的是,您在下意识中没有看到问题,以至于当您将代码复制到上面的消息时,您会自动更正问题。错误消息表示您在;之前有一个return,这意味着您的实际代码几乎肯定是

if(!infile);
   return NULL;

并且警告告诉您if没有意义,因为它保护的语句是空的(;行末尾的if) ,回报将无条件执行。

答案 1 :(得分:0)

要检查的一些事项:

  • 你是否包括stdio.h?
  • 这个函数应该返回一个值吗?
  • 实际定义了NULL吗? (尝试返回0)

哪条线路报警?它真的是你发布的一条线吗?