Une boucle for bizarre
Résolu
dx3d
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
-
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je révise mes cours pour mes partiels de fin de semestre et je suis tombé sur une boucle for dans le code de notre enseignant que j'ai du mal à bien comprendre :
donc j'aimerais juste savoir si c'est correcte d'écrire la boucle comme cela sachant qu'il a bien marqué id = 0 plus haut dans le code.
for (; id < *max_fd; ++id) {
if (old_set[id] == new_fd) {
break;
}
}
donc j'aimerais juste savoir si c'est correcte d'écrire la boucle comme cela sachant qu'il a bien marqué id = 0 plus haut dans le code.
A voir également:
- Une boucle for bizarre
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
- Opera mini for pc - Télécharger - Navigateurs
2 réponses
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.
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 ? :/
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.