Warum FILE-pointer deklariert werden müssen aus main() in Visual Studio 2010?

Ich versuche zu kompilieren eine einfache ansi-C-Beispiel in Visual Studio 2010 und stieß mit diesem Fehler kompilieren:

Fehler:
patchC.c(5): error C2275: 'DATEI' : unzulässige Verwendung dieses Typs als Ausdruck

Program1:

#include <stdio.h>

int main(void) {
    printf("Hello world!\n");
    FILE *fp;
    fp = fopen("test.txt", "r");
    return 0;
}

Dem gleichen Programm ohne Fehler kompiliert gcc v4.5.2.

Aber, wenn ich die "FILE *fp;" - Zeile aus der main(), das Programm kompilieren würde.

Program2:

#include <stdio.h>

FILE *fp;

int main(void) {
    printf("Hello world!\n");
    fp = fopen("test.txt", "r");
    return 0;
}

Ich nicht herausfinden, warum dieses Verhalten, jemand beantworten könnte?

InformationsquelleAutor Juliao | 2011-05-04
Schreibe einen Kommentar