【发布时间】:2015-05-14 22:02:54
【问题描述】:
(使用 Visual Studio 2012 C++ 编译器)
下面的编译就好了:
FILE *filePointer = fopen("file.txt","wb");
但如果我尝试将其分成两行:
FILE *filePointer;
filePointer = fopen("file.txt","wb");
在第二行,编译器无法将filePointer 识别为变量。我收到类似的错误
Error: this declaration has no storage class or type specifier
或
error C2040: 'filePointer' : 'int' differs in levels of indirection from 'FILE *'
error C2440: 'initializing' : cannot convert from 'FILE *' to 'int'
为什么它不记得filePointer 是FILE*?
【问题讨论】:
-
你使用哪个#includes?
-
(使用 Visual Studio 2012 C++ 编译器)
-
c++ 现在已经与 c 不同了。它们不再兼容。在某些特定的编译器中,可能存在一些问题。实际上,自从名称更改以来,vs 不再专门支持 c。
-
你能提供一个完整的文件来说明这个问题吗?例如,是否只在您提供的代码周围添加一个
main()函数,然后将#include <stdio.h>放在它前面会产生一个 VS 抱怨的文件? -
代码是否可能出现在文件范围内,而不是在函数中?
标签: c