Une boucle for bizarre
Résolu/Fermé
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
-
Modifié par dx3d le 14/04/2015 à 16:09
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 14 avril 2015 à 17:22
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 14 avril 2015 à 17:22
A voir également:
- Une boucle for bizarre
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Idm for mac - Télécharger - Téléchargement & Transfert
2 réponses
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
14 avril 2015 à 16:23
14 avril 2015 à 16:23
Salut,
en fait ce que tu places dans un if avant la première occurrence du ";", c'est ce qui va se passer à l'initialisation de la boucle for (1 fois) puis après c'est la condition de sortie de la boucle, puis ce qui se passe à chaque itération.
Dans ton cas, pas la peine de définir id = 0 à cette emplacement vu que comme tu l'as remarqué la variable id est définit plus haut.
en fait ce que tu places dans un if avant la première occurrence du ";", c'est ce qui va se passer à l'initialisation de la boucle for (1 fois) puis après c'est la condition de sortie de la boucle, puis ce qui se passe à chaque itération.
Dans ton cas, pas la peine de définir id = 0 à cette emplacement vu que comme tu l'as remarqué la variable id est définit plus haut.
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
14 avril 2015 à 16:54
14 avril 2015 à 16:54
Rebonjour, merci pour la réponse mais la je me retrouve avec une question similaire :
Voici l'une des fonction de notre code
Les "return;" retourne quoi au juste ? :/
Voici l'une des fonction de notre code
static void handle_client_req(char * req, int fd) {
char * space;
unsigned int param;
size_t len;
len = strlen(req);
/* format: <code(3)><space(1)><param(1+)> */
if (len < 5) {
/* Invalid req */
return;
}
space = strchr(req, ' ');
if (space == NULL) {
/* Invalid req */
return;
}
param = strtol(space, NULL, 10);
if (strncmp(req, "SLP", 3) == 0) {
#ifndef __WIN32
sleep(param);
#else
Sleep(param * 1000);
#endif
strncat(req, " = OK", MAX_BUFFER_SIZE - len - 1);
} else if (strncmp(req, "FCT", 3) == 0) {
unsigned long res = 1;
char buffer[MAX_BUFFER_SIZE / 2];
while (param > 0) {
res *= param;
--param;
}
snprintf(buffer, MAX_BUFFER_SIZE / 2, " = %lu\n", res);
strncat(req, buffer, MAX_BUFFER_SIZE - len - 1);
} else {
/* Invalid req */
return;
}
/* And send (null chr included) */
if (send(fd, req, sizeof(char) * (strlen(req) + 1), 0) == -1) {
fprintf(stderr, "Erreur à l'envoi\n");
}
return;
}
Les "return;" retourne quoi au juste ? :/
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
14 avril 2015 à 17:00
14 avril 2015 à 17:00
A vérifier car ça fait longtemps que je n'ai pas fait de C, mais je pense qu'ils retournent rien à en juger le type défini du retour "void".
Ceci est valable dans tous les langages de programmation, faire ça c'est pour sortir de la fonction sans exécuter le code suivant.
Dans ton exemple, dès le début, ça test la taille de la chaine de caractère fourni en paramètre et si cette dernière ne correspond pas aux normes définies, ça sort directement de la fonction sans avoir a exécuter le code qui suit qui devient alors inutile car le paramètre ne correspond pas à ce qu'on attend pour le bon fonctionnement de la fonction.
Ceci est valable dans tous les langages de programmation, faire ça c'est pour sortir de la fonction sans exécuter le code suivant.
Dans ton exemple, dès le début, ça test la taille de la chaine de caractère fourni en paramètre et si cette dernière ne correspond pas aux normes définies, ça sort directement de la fonction sans avoir a exécuter le code qui suit qui devient alors inutile car le paramètre ne correspond pas à ce qu'on attend pour le bon fonctionnement de la fonction.
dx3d
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
>
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
14 avril 2015 à 17:03
14 avril 2015 à 17:03
Merci beaucoup ! Je comprend beaucoup mieux le code du coup ! :p
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
14 avril 2015 à 17:22
14 avril 2015 à 17:22
Pas de soucis, quand on peut aider ;)