2017-01-14 7 views
-1

Ich weiß, was ein Funktionsaufruf ist. Ich weiß was es macht. Ich habe es viel debugged. Ich habe einige intuitiven Sinn auf, warum es sinnvoll ist, den Begriff "Funktionsaufruf" zu verwenden, aber wenn es darauf ankommt, kann ich das nicht richtig erklären, wie ich mit einer return Aussage könnte.Warum wird ein Funktionsaufruf als "Funktionsaufruf" bezeichnet?

Zum Beispiel mit einer return Aussage ist die Antwort: es heißt eine "Rückkehr", weil Sie dorthin zurückkehren, wo Sie herkamen. Sie kehren zu der Zeile zurück, von der aus die Funktion aufgerufen wurde. Es macht also Sinn, warum das Ende einer Funktion (implizit oder explizit) zurückkehrt.

Ich habe bemerkt, dass für Leute, die Englisch als ihre Muttersprache sprechen, dies leichter zu verstehen ist (besonders bei eher obskuren Wörtern wie "Cache"). Aber für Leute wie mich (Holländer, gelerntes Englisch durch Videospiele und Untertitel) ist es schwerer zu verstehen.

Ich googelte für diese Frage, aber ich bekomme alle Arten von Einträgen, was ein Funktionsaufruf ist und wie es funktioniert. Ich verbinde das Wort "Anruf" oft mit Telefonen, da ich es hauptsächlich für Englisch benutze.

fragte ich eine ähnliche Frage auf, was die „De-“ bedeutet in dem Wort „dereferenzieren“ hier: What does the de- prefix in dereference mean? Is there a linguistic explanation for it?

+1

Cross-Site-Art von Duplikat, aber nicht vollständig: https://softwareengineering.stackexchange.com/questions/253694/where-did-the-notion-of-calling-a-funktion-come-from – hvd

+1

Zusammenfassend * springen * Sie zu einem Unterprogramm, wenn Sie einfach den Ablauf des Programms dorthin mitnehmen wollen. Sie * rufen * eine Subroutine auf, um anzuzeigen, dass diese Änderung nur vorübergehend ist und Sie beabsichtigen, dass der Fluss zu Ihnen zurückkehrt. –

+0

Warum der Downvote? Ich erklärte, was ich getan habe, wie ich es nicht finden konnte und was ich bereits wusste. Ich habe versucht, so konstruktiv wie möglich zu sein. Es hat sogar 17 Punkte auf der Software Engineering Stack Exchange Seite (Danke @hvd für den Link!). hvd: Danke für den Link, der Link beantwortet meine Frage. Ich denke, es ist auch eine Art Duplikat, die der SO-Suggestion-Engine nicht erwähnt hat. Also ist es nützlich, auch bei SO einen kleinen Kreuzreflex zu haben? Ich denke schon, da es hilft, die Frage zu googeln. Und danke Theodoros für die Unterscheidung zwischen Springen und Rufen. –

Antwort

3

Der Begriff Anruf hat eine weite Bedeutung. Bei Verwendung in Aufruf einer Funktion, würden Sie wahrscheinlich am besten interpretieren, dass für Aufruf eine Funktion für die Ausführung. Siehe folgende Bedeutung durch die Free Dictionary gegeben:

  1. zu bestellen oder Anforderung eine bestimmte Tätigkeit oder Arbeit zu verpflichten; Beschwören:
    Sie wurde für die Geschworenenpflicht berufen. Er wurde zum Priestertum berufen.

Das ist ganz in der Nähe in der Bedeutung an einem anderen Ausdruck für den Aufruf Funktionen verwendet: Aufruf auf eine Funktion.

Das sollte im Zusammenhang mit Funktionen sinnvoll sein. Die Funktion stellt einen Dienst zur Verfügung und muss diesen jetzt bereitstellen. In beiden Fällen lautet die Bedeutung: Abfrage des Codes in einer auszuführenden Funktion.

NB: Auf Niederländisch können Sie mit oproepen oder (seltener) aanroepen übersetzen.

+0

"Aanroepen" auf Holländisch fühlt sich - leider - ein bisschen archaisch an, da ich es nicht oft im täglichen Sprachgebrauch benutze (und das Programmieren fühlt sich an, als wäre es aus der täglichen Rede abgeleitet). Daher konnte ich nicht viel Sinn daraus machen. –

+0

Tatsächlich ist * oproepen * das gebräuchlichere Verb auf Niederländisch (Ich korrigierte einen Fehler am Ende der Fußnote). Andere niederländische Alternativen, um zu verstehen, wie * call * (* roepen *) in die Bedeutung involviert ist: inroepen, beroep doen op. Wie auch immer, in Englisch finde ich es besser zu sagen * rufen Sie eine Funktion * auf. Aber * call * ist da, um für die Zukunft zu bleiben, wie es in abgeleiteten Begriffen wie * Call Stack * verwendet wird. – trincot

0

Dank mich, dass die Kommentare des wirklich im Zusammenhang bemerkt @hvj - wenn auch nicht gleich! Da ich es sprachlich nicht historisch wissen will - Frage bezog sich auf ein Papier, das hinter einer Paywall stand (siehe http://dl.acm.org/citation.cfm?id=609816&CFID=888670230&CFTOKEN=46456506). Ich las das Papier und dann fand ich dieses kleine Stück:

In dieser Art von Routine ist es eingerichtet, dass eine Folge von Operationen jedes Mal ausgeführt wird, wenn das Unterprogramm in Aktion aufgerufen wird.

Der damalige Zeitgeist formulierte es so, dass es Unterprogramme in Aktion rief. Randnotiz: Sie sprachen auch über return Steuerung von einer Unterroutine zum Hauptprogramm.

Verwandte Themen