Я пытался скомпилировать простой пример ANSI C в Visual Studio 2010 и столкнулся с этой ошибкой компиляции:
Ошибка:
patchC.c (5): ошибка C2275: «ФАЙЛ»: незаконное использование этого типа в качестве выражения
Program1:
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
FILE *fp;
fp = fopen("test.txt", "r");
return 0;
}
Эта же программа без ошибок компилируется в gcc v4.5.2.
Но, если я поставлю "FILE * fp;" из строки main () программа изящно компилируется.
Program2:
#include <stdio.h>
FILE *fp;
int main(void) {
printf("Hello world!\n");
fp = fopen("test.txt", "r");
return 0;
}
Я не понимаю, почему такое поведение, кто-нибудь может ответить?