#include <stdio.h>/* structures */ // ma_fonction_recursive s'appelle avec plusieurs paramètres, d'où la création d'un structure contenant ses paramètres typedef struct parametres_ma_fonction_recursive { int a; int b; } parametres_ma_fonction_recursive;/* fonctions */ void ma_fonction_recursive(int a, int b); void *thread_ma_fonction_recursive(void *arg); int main(int argc, char** argv) { // RASTAFARIII ma_fonction_recursive(10,20); return 0; } void ma_fonction_recursive(int a, int b) { /* init */ static int compteur = 0; // compteur de thread int max_count = 10; // on lance 10x la fonction pthread_t mon_thread; parametres_ma_fonction_recursive parametres; // pour stoquer tous les paramètres /* des instructions à la con histoire de dire */ if(compteur < max_count) { printf("a=%d ; b=%d ; c=%d", a, b, compteur++); } /* appel du thread */ // préparation des paramètres : parametres.a = a++; parametres.b = b--; // on fait un thread pthread_create(&mon_thread, NULL, thread_ma_fonction_recursive, ¶metres); } // va permettre la conversion des paramètres avant d'appeler la fonction void *thread_ma_fonction_recursive(void *arg) { // on converti l'argument en paramètres de fonction parametres_ma_fonction_recursive *parametres = (parametres_ma_fonction_recursive*) arg; int a = parametres->a; int b = parametres->b; // et on appelle la fonction dans notre thread ma_fonction_recursive(a, b); }