NOC-Funktionstypen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche
Dieser Artikel sollte überarbeitet werden.
Die Regeln für GlossarWiki-Artikel sollten beachten werden.
In diesem Artikel sollten die Quellenangaben überarbeitet werden.
Bitte die Regeln der GlossarWiki-Quellenformatierung beachten.
Genauere Quellenangaben fehlen.

Dieser Artikel ist nicht korrekt kategorisiert (siehe Regeln für GlossarWiki-Artikel).

1 Definition

NQC kennt drei verschiedene Arten von Funktionen: Tasks, (Inline-)Funktionen und Unterprogramme; diese drei haben besondere Eigenschaften und Beschränkungen, sind aber vom Aufbau her gleich.

2 Tasks

Der erste und gleichzeitig der wichtigste Funktionstyp ist der Task. Ein Task hat folgende Syntax:

task name( )
{
// Programmanweisungen
}

Der Name eines Tasks kann ein beliebiger Bezeichner sein. Ein Programm in NQC hat mindestens einen Task, nämlich main; dieser wird aufgerufen, wenn das Programm gestartet wird. Ein Task ist dabei am besten zu vergleichen mit einem Thread – d.h., wenn ein Task gestartet wird, läuft er ständig weiter. Ein Task kann mit den Anweisungen start und stop gestartet bzw. gestoppt werden; des Weiteren gibt es die Anweisung StopAllTasks, die alle laufenden Tasks anhält.

3 (Inline-)Funktionen

Eine (Inline-)Funktion läuft im Gegensatz zu den Tasks nicht ständig, sondern wird bei Bedarf aufgerufen. Eine Funktion hat die folgende Syntax:

void Name ( Argumentliste )
{
// Programmanweisungen
}

Der Name ist dabei ein beliebiger Bezeichner, die Argumentliste kann beliebige Argumente beinhalten. Das Schlüsselwort void ist ein Überbleibsel aus der NQC-Abstammung – in der Sprache C muss für Funktionen der Datentyp des Rückgabewerts angegeben werden. Funktionen, die keinen Wert zurückgeben, besitzen den Rückgabetyp void. Da Rückgabewerte in NQC nicht zur Verfügung stehen, müssen alle Funktionen mit dem Schlüsselwort void vereinbart werden.

4 Unterprogramme

Im Gegensatz zu den (Inline-)Funktionen ist der Code eines Unterprogramms (oder Subroutine) nur einmal vorhanden und kann von mehreren Aufrufern verwendet werden. Dadurch nutzen Unterprogramme den Speicher wesentlich besser aus als Funktionen. Es gibt allerdings einige Beschränkungen für Unterprogramme: Diese können zum einen keine Argumente verwenden. Weiterhin kann kein Unterprogramm ein weiteres Unterprogramm aufrufen. Und schließlich ist die Zahl der Unterprogramme beim RCX auf acht beschränkt. Des Weiteren darf ein Unterprogramm keine lokalen Variablen besitzen, wenn es von mehreren Tasks aufgerufen wird (diese Beschränkung gilt allerdings nicht für den RCX 2.0). Die Definition eines Unterprogramms hat folgende Syntax:

sub name( )
{
// Programmanweisungen
}

5 Quellen