TronLe 15/06/2016 à 11:57
Comment faire une indirection d'appel en C ?
Normalement :
int return_value_by_ptr(int** receiver);
int* receiver = NULL;
return_value_by_ptr(&receiver);
Ce que je veux :
#define MACRO_RETURN_VALUE() int* ptr && return_value_by_ptr(&(int*) { &prt })
int* receiver = MACRO_RETURN_VALUE();
En gros je m'en fout du retour de 'return_value_by_ptr' (code d'erreur inutile) mais je veux pouvoir retourner le contenu de 'ptr'.
Si ce contenu == NULL, c'est déjà une erreur, pas besoin de tester l'autre.
Ça semble assez étrange à prime abord, mais c'est super utile en fait.
C'est pour ré-écrire les kernel Linux en mode nostub.
Carrément.
Comme ça.
Je suis un fou.