so setzen Sie eine DATEI** variable stdout?

Mockup von meinem Produktions-code:

/* version 1 */
#include <stdio.h>
FILE** fout = &stdout;
int main() {
     fprintf( *fout, "hello\n" );
}

Funktioniert gut unter gcc, aber angeblich nicht kompiliert unter mingw (lvalue erforderlich als unäre '&' operand).

Habe ich gesehen,Ist die Einstellung einer DATEI* gleich stdout portable?; ich verstehe, dass

/* version 2 */
#include <stdio.h>
int main() {
    FILE* fout = stdout;
    fprintf( fout, "hello\n" );
}

wäre durchaus gültig. Allerdings brauche ich zur Voreinstellung einer globalen variable. Leider

/* version 3 */
#include <stdio.h>
FILE* fout = stdout;
int main() {
    fprintf( fout, "hello\n" );
}

nicht geeignet ist, zu ersetzen, die version 1 ist; es ist nicht selbst kompiliert unter gcc (Linie 2: element-Initialisierer ist nicht konstant).

Irgendeine Idee, wie man stdout in eine variable initialisiert wird, bevor die main() gestartet wird?

Der Stdout-stream ist bereits geöffnet! Es kann nicht sein, 2 stdout zur gleichen Zeit öffnen... ich schlage vor, vielleicht mit #define oder lassen Sie sich einfach von main starten, dann speichern Sie es in eine Globale var.. Warum vor der main startet?
Warum vor der main beginnt: als Autor einer Bibliothek, ich biete meinen Usern struct default_settings initialisiert wird in der Bibliothek von code, und diese sind enthalten fout=stdout unter vielen anderen parameter-Einstellungen.

InformationsquelleAutor Joachim W | 2013-08-29

Schreibe einen Kommentar