C++ 将 FILE * 作为参数传递给函数

标签 c++ windows file arguments

我想将 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/

相关文章:

c++ - 非空终止字符数组的 std::string_view 的大小差异

c++ - 为什么模板只能在头文件中实现?

用于查找正确父文件夹的 Windows 批处理脚本

windows - 如何使用 Git Archive 在 Windows 上创建 Tarball?

json - 尝试通过提取读取json文件时出现错误

自制arrayList中的Coredump

c++ - 如何使用 fstream,在 .txt 文件中写入不同的值

c++ - 为什么赋值表达式的标准 C++ 语法看起来很奇怪

c - UNIX 发送 CR 而不是 LF

jquery - 如何更新blueimp jquery文件上传以使用Bootstrap 4+