为什么我的另一个文件中的void函数没有在这个C程序中运行?

我想打印一个txt文件的内容(第一个参数),但这样做的函数在另一个文件中。
我有以下主要文件:

#包括<标准h>
#包括<stdlib.h>
#包括<字符串.h>
#包括「;fileoperation.h"
int main(int argc,字符**argv)
{
read(argv[1]);
返回0;
}

然后在fileoperation.c文件中,我有:

“包括”;fileoperation.h"
无效读取(字符*文件)
{
文件*fptr;
字符c;
fptr=fopen(文件“r”);
如果(fptr==NULL)
{
printf(“无法打开文件”);
出口(0);
}
c=fgetc(fptr);
而(c!=EOF)
{
printf(“c”,c);
c=fgetc(fptr);
}
fclose(fptr);
}

如果我在main函数中的函数中键入代码,它就会工作。我不明白他为什么不工作

fileoperation.c的头文件是

\ifndef文件操作
#定义文件操作
#包括<标准力h>
#包括<标准h>
#包括<stdlib.h>
#包括<字符串.h>
无效读取(字符*文件);
#恩迪夫

重命名你的函数读取存在于备份库中。更糟糕的是,编译器知道它做什么并对其进行优化

可能更糟。你可以用自己的替换实际的读取,并放大标准库

发表评论