le mot "void" que veut-il dire?

bonjour,
Je lis dans le livre de Clémens Valens,(p303) dans ses sketchs:
exemple: void reset(void)
void setup (void)

1- Je pense que void reset(void) doit-être une sorte de sous programme?
2-mais pourquoi encore void dans void setup (void) ?

dans le livre de karvinen (p55) je lis:
void wave(int pin), float frequency, int duration)
pourquoi aucune variable n'est définie? et que cela veut dire?

Désolé vous me trouverez naïf mais je ne comprends pas
Néanmoins un grand merci!
cordialement, Georges

De manière générale, la syntaxe de la définition d'une fonction est la suivante

type_valeur_retournée NomDeLaFonction(type des arguments)

Si la fonction ne retourne aucune valeur ou si la fonction n'attend aucun paramètre on utilise void (void = vide en anglais)

En d'autres mots:

void wave(int pin, float frequency, int duration) --> Fonction (ou méthode) "wave"

  • attendant 3 paramètres
    -"pin", de type int=entier
  • frequency de type float=flotant
  • duration de type int
  • et ne retournant rien (void)

En espérant que ca t'aide :slight_smile:

void est un mot clé utilisé comme un type qui veut dire "rien", "indéfini" ou "sans importance" suivant le contexte

une fonction dont le type de retour est void ne retourne rien par exemple

un pointeur de type void* est un pointeur (une adresse mémoire) pointant vers un type inconnu. c'est le pointeur universel.

quand une fonction ne prend pas de paramètre et qu'on veut bien le faire voir, on peut mettre void entre les parenthèses dans sa définition

int fonctionBete(void) {
  return 3;
}

Il faut revenir à la définition mathématique des fonctions comme y= ax+b.
Il y a un terme à gauche qui reçoit le résultat d'une opération, il y a une opération à droite et au milieu un terme "=".

D'après ce que j'ai pu lire il existe des langages comme le Pascal où les notions de "procédure" et de "fonction" sont clairement dissociées. La procédure fait une liste d'action, la fonction donne le résultat d'un calcul.

Les concepteurs du C/C++ ont fait le choix de dire "en C tout est fonction" (voir Thomson, Ritchie et Kermigham).
La conséquence est qu'il faut indiquer au compilateur que dans le mode équivalent à une "procédure" la fonction n'aura pas de ligne return machin_chose;
Et cette indication est le mot void.

Et si la fonction revoie un résultat il faut remplacer le mot void par le type du résultat : entier, (integer) réel (float), logique (booléen), structure, etc....

merci beaucoup pour votre dévouement, mais c'est pas si simple que ça!
Georges

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.