一个C程序编译时出的问题 问下高手错误出在哪

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:14:47
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
程序太大 不能完全弄上来
error C2275: 'FILE' : illegal use of this type as an expression
error C2065: 'fp' : undeclared identifier
编译的时候说有两个错误出现在以下的程序里
void SaveMessage(struct Message *head)
{

if (head == NULL)
{
return;
}

FILE *fp;

fp = fopen("file.txt", "ab+");
if (fp == NULL)
{
printf("打开文件出错!\n");
return;
}

while (head != NULL)
{
fwrite(head, sizeof(struct Message), 1, fp);
head = head ->next;
}
printf("保存成功!\n");

fclose(fp);
}
顺便回答下该怎么改

如果说有错的话,那可能是纯C语言的问题:
FILE *fp这句不能是在哪里使用就在哪里声明。而是在函数的最开始处声明,也就是说,每个函数的开始处,基本都会有一堆的变量声明。这是C语言的规定。
因此,得把FILE *fp放到if(head==NULL)这句前面