• STATISTIQUES
  • Il y a eu un total de 0 membres et 46068 visiteurs sur le site dans les dernières 24h pour un total de 46 068 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C][SDL]Exécuter deux fonctions en même temps
27-12-2013, 09h38
Message : #6
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [C][SDL]Exécuter deux fonctions en même temps
(27-12-2013, 00h38)InFamouZz a écrit : je ne vois pas de moyen sans threads de le faire.

sur le principe c'est la différence entre ça :
Code C :
#include <stdio.h>
#include <unistd.h>

void fais_tout (void) {
    char *texte[] = {"hel", "lo ", "wor", "ld ", "!\n"};
    int toto;
    for (toto = 0; toto < 5; toto++) {
        sleep(1);
        printf ("%s", texte[toto]);
    }
}

int main (void) {
   
    fais_tout();
    return 0;
}

et ça :
Code C :
#include <stdio.h>
#include <unistd.h>

#define ACT_AFFICHEMSG    1
#define ACT_WAIT    2

void fais_un_truc (int action, int i) {
    char *texte[] = {"hel", "lo ", "wor", "ld ", "!\n"};
    switch(action) {
        case 1: { /* i est la partie du message a afficher */
            printf ("%s", texte[i]);
            break;
        }
        case 2: { /* i est le nombre de secondes a attendre */
            Sleep(i);
            break;
        }
        default: return;
    }
}

int main (void) {
    int toto;
    for (toto = 0; toto < 5; toto++) {
        fais_un_truc (ACT_WAIT, 1);
        fais_un_truc (ACT_AFFICHEMSG, toto);
    }
    return 0;
}

au delà du fait qu'on a une même fonction qui sert de dispatcher pour les différentes actions (switch/case) l'intérêt c'est surtout que dans le 2e code on garde la main sur la boucle toto, du coup on appelle la fonction en lui passant juste la partie du message à afficher, c'est un peu comme appeler une fonction film() en lui donnant comme paramètre l'image à afficher

Citation :De plus notre prof nous avais dis de regarder les threads pour ce projet.

c'est possible mais il ne devait pas parler de mettre plusieurs threads qui bossent en même temps sur la même ressource (la surface principale/l'écran), ce n'est ni la bonne façon de faire ni une bonne idée
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (3) -1 (0) Répondre


Messages dans ce sujet
RE: [C][SDL]Exécuter deux fonctions en même temps - par gruik - 27-12-2013, 09h38

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut