Qu'est-ce que Valeur de retour ?

Valeur qu'une fonction renvoie à l'appelant lorsqu'elle se termine. En pseudo-code, la valeur de l'expression écrite après return devient la valeur de retour, et la fonction se termine dès que return est exécuté.

Nom japonais: 戻り値

« Valeur de retour » apparaît dans 12 questions d'entraînement réparties sur 5 thèmes, dont Bases de la programmation (trace de pseudo-code), ISA et assembleur, Éditeurs de liens, chargeurs et exécutables.

Domaine: Bases de la programmation (trace de pseudo-code)

S'entraîner : questions sur Valeur de retour

Dans la convention d'appel standard de RISC-V, quels registres servent à transmettre les arguments entiers et la valeur de retour ?

  1. AArguments dans s0 à s7, valeur de retour dans ra
  2. BArguments dans a0 à a7, valeur de retour dans a0 (et a1)
  3. CTous les arguments sur la pile, valeur de retour dans sp
Afficher la réponse et l'explication

Réponse : B. Arguments dans a0 à a7, valeur de retour dans a0 (et a1)

Dans la convention d'appel standard de RISC-V, jusqu'à 8 arguments entiers sont passés dans a0 à a7 (x10 à x17), et la valeur de retour est renvoyée dans a0, ou dans a0 et a1 pour une valeur de 64 bits sur RV32 par exemple. Le passage par registres, plus rapides que la mémoire, réduit le coût des appels de fonction. Les arguments au-delà de 8 sont placés sur la pile. Les arguments flottants utilisent fa0 à fa7.

« Valeur de retour » dans les explications

Questions mentionnant « Valeur de retour » (12)

  1. Dans la convention d'appel standard de RISC-V, quels registres servent à transmettre les arguments entiers et la valeur de retour ?
  2. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Quelle est la valeur de retour de la fonction f suivante appelée sous la forme f(9087) ?
  3. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Quelle est la valeur de retour de la fonction toBin suivante appelée sous la forme toBin(12) ?
  4. Quelle est la valeur de retour de la fonction s suivante appelée sous la forme s(7) ?
  5. Quelle est la valeur de retour de la fonction fib suivante appelée sous la forme fib(10) ?
  6. Lorsque la fonction f ci-dessus est appelée trois fois de suite, quelle est la valeur de retour du troisième appel ?
  7. Quel est le principal objectif de la définition d'une convention d'appel (calling convention) ?
  8. Parmi les erreurs de programme, laquelle peut être détectée dès la compilation ?
  9. Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
  10. Lorsque la fonction main d'un programme C se termine par « return 3; », que devient généralement cette valeur 3 ?
  11. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Lorsque la fonction pow suivante est appelée sous la forme pow(2, 10), combien de fois pow est-elle appelée, premier appel compris ?
  12. Lorsque la fonction c suivante est appelée sous la forme c(4, 2), combien de fois c est-elle appelée, premier appel compris ?

Termes associés

Argument Variable Pile (stack) Convention d'appel Récursion (récursivité) Division entière Assembleur ABI (interface binaire d'application) Analyse syntaxique Point d'entrée

Retour au glossaire