2 Stimmen

Erstellen einer Proxy-Funktion zu fprintf in einer unauffälligen Weise?

Ich möchte einen Proxy erstellen für fprintf , etwa so:

void raise_exception(char *filename, int line, char *format_string, ...) {
    fprintf(stderr, "Exception in `%s`:%d!\n", filename, line);
    fprintf(stderr, format_string, ...);
    exit(EXIT_FAILURE);
}

Aber was soll ich an die Stelle der zweiten Ellipse setzen? Ist es überhaupt möglich?

Ich würde es gerne noch ein bisschen vereinfachen, etwa so:

#define RAISE(...) raise_exception(__FILE__, __LINE__, ...)

Aber ich glaube auch nicht, dass das funktionieren würde.

Irgendwelche Ideen? Danke!

UPDATE

Direkt von Wikipedia :

Makros mit variablen Argumenten wurden in der ISO/IEC 9899:1999 (C99) eingeführt.

Die Definition, die das tun würde, sollte also so aussehen:

#define RAISE(...) raise_exception(__FILE__, __LINE__, __VA_ARGS__)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X