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


  • ANNUAIRE
  • [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    Challenges
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges
    [EN] phrack
    Lot's of stuff !
    Hacking
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking

  • 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 : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut