[英]writing a C code in Visual studio
我在Visual Studio中編寫了一個簡單的函數,以便能夠研究如何在Visual Studio中編寫C項目,但是它出現以下錯誤:
Error 1 error C2275: 'FILE' : illegal use of this type as an expression
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 25
1 Exc4
Error 2 error C2065: 'file' : undeclared identifier
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 25
1 Exc4
Error 3 error C2065: 'file' : undeclared identifier
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 31 1
Exc4
Error 6 error C2065: 'file' : undeclared identifier
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 39 1
Exc4
Error 9 error C2065: 'file' : undeclared identifier
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 41 1
Exc4
Error 12 error C2065: 'file' : undeclared identifier
c:\users\henry\documents\visual studio 2010\projects\exc4\exc4\measurement.c 45 1
Exc4
17 IntelliSense: a value of type "void *" cannot be used to initialize an
entity of type "Tmeasurement *" c:\users\henry\documents\visual studio
2010\projects\exc4\exc4\measurement.c 99 33 Exc4
在Mac Xcode編譯器上編譯函數時,我從未遇到此錯誤。 希望有人在那里可以解釋為什么未識別語句FILE * file。
Tmeasurement readMeasurements(Tmeasurement a, char *filename)
{
int filesize, i;
struct stat st;
stat(filename, &st);
filesize = st.st_size;
a.ArraySize = filesize;
a.measureArray = (float*)malloc(filesize*sizeof(float));
FILE *file = fopen(filename, "r+");
// FILE *file = fopen(filename, "r");
/*filesize = fread(a.measureArray, 1, filesize, file);
a.ArraySize = filesize;*/
if(file==NULL)
{
printf("Could not open mea.dat!\n");
return;
}
for(i=0; i<102 &&(fgetc(file))!=EOF;i++)
{
fscanf(file,"%e",&a.measureArray[i]);
}
fclose(file);
return a;
}
Visual Studio是C89編譯器。
混合聲明和代碼是C99的功能。
不要混合使用聲明和代碼 , 也不要使用Visual Studio :)
Microsoft編譯器僅支持C89標准,因此變量聲明必須在作用域的開頭,然后再聲明任何其他語句。
改成:
Tmeasurement readMeasurements(Tmeasurement a, char *filename)
{
int filesize, i;
struct stat st;
FILE* file;
...
file = fopen(filename, "r+");
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.