我知道在C中我们必须声明一个指向FILE类型的指针.为什么我们不能直接使用FILE类型而不必使用指向FILE的指针?
FILE *file;
FILE file; // Why can't we use this instead?
Run Code Online (Sandbox Code Playgroud)
A FILE是资源.给定文件只存在一次,不能移动.这使得FILE不适合C的值语义.只要有资源,就可以通过传递指向资源的指针来引用资源,这是C API正在做的事情.
(此外,定义对于实现而言FILE是私有的,而不是标准的一部分,这是您希望实施者拥有的基本自由.)