c++ - 前向声明文件 *

标签 c++ c gcc forward-declaration c89

如何在 C 中转发声明 FILE *?我通常使用 struct MyType; 来执行此操作,但自然这似乎是不可能的。

如果 C 标准或编译器与 C++ 之间的行为不同,这也是令人感兴趣的。

更新0

我为什么要这样做:我要问的是如何转发声明非结构/“typedef'd struct”类型,以便我可以声明指向它的指针。显然使用 void * 并将其转换到源文件中有点hackish。

最佳答案

你不能。该标准只是声明FILE是“一种能够记录控制流所需的所有信息的对象类型”;这是否是 typedef 取决于实现。的 struct (反正你不知道他的名字),或者别的什么。

声明FILE 的唯一可移植方式与 #include <stdio.h> (或 <cstdio> 在 C++ 中)。

关于c++ - 前向声明文件 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882346/

相关文章:

c++ - 隐式转换运算符优先级

c++ - 删除 C 上的非通用模板参数

c++ - 如何从 Qt 中连接的 HID 设备读取信息

c++ - 我可以捆绑两个 MPI 消息吗?

c - 为什么在 C 中不允许分配给数组?

c++ - Friend 类、继承和 typedef——哪种行为是正确的?

c++ - 我对基于套接字的模型的图形表示和解释

c - Arduino - 计数器 :50: error: lvalue required as left operand of assignment

c - 功能和性能的返回值

无法使用 gcc-7 编译