我想将 FILE * 传递给另一个函数。在此函数中,使用 fread 从文件中读取一些字节。不执行写入。
我在想该不该说
void DoSomething(FILE *uFile)
或
void DoSomething(const FILE *uFile)
我害怕在某处引入内存泄漏,并认为 const 可能更安全。 我担心当我不正确地传递它时,该函数可能会创建文件的拷贝。
我像这样创建 FILE *:
FILE *outfile = fopen("c:\\myfile.dat", "wb");
谢谢。
最佳答案
无论您将 FILE*
传递给哪个函数,最终都会调用 fread
/fscanf
/fwhatever
。如果您看一下,所有这些函数都采用(非常量)FILE*
。
您需要准备好为这些功能提供它们所需的功能。如果它们的原型(prototype)采用非 const 参数,而您尝试给它们一个 const 参数,您将收到编译器警告。
出于这个原因,我将传入一个非常量 FILE*
关于C++ 将 FILE * 作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334050/