sind NQCs "void"s macros?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

es gibt ne progrmmiersprache namens NQC (not quite c).
diese wird zur ansteuerung von diesen lego robotics robotern benuzt.

und da gibt es "void"-funktionen, void funktionen funktionieren intern per copy&paste (der lego robotics kann naemlich nur eine bestimmte anzahl von funktionen speichern, deswegen lagert man kurze code stuecke in diesen voids aus)

nun hab ich in einer informatik klausur geschrieben, dass voids genau wie #DEFINEs macros sind.
das wurde mir aber als fehler mit diesen von uns allen bekannten, untoleranten, fortschritssvernichtenden, besserviserischen roten stifft weggestrichen

zu recht?


Edit (birkenfeld): Not-Quite-Apostrophe entfernt.
cp != mv
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Costi hat geschrieben:und da gibt es "void"-funktionen
Hallo Costi!

"void" bedeutet nur, dass von der Funktion kein Wert zurück kommt. Die Funktion verhält sich somit (ähnlich) wie eine Prozedur.

http://de.wikipedia.org/wiki/Void#Informatik

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

War die Klausur denn überhaupt über NQC? *Genau* wie Makros in C sind die nicht. Eher wie ``inline`` Funktionen in C++.
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

"void" bedeutet nur, dass von der Funktion kein Wert zurück kommt. Die Funktion verhält sich somit (ähnlich) wie eine Prozedur.
ich weiss, das void hat aber in NQC nichts mit rueckgabewerten zu tun.
der name ist nur etwas werwirrend, "def" oder "proc" waere eindeutiger

War die Klausur denn überhaupt über NQC? *Genau* wie Makros in C sind die nicht. Eher wie ``inline`` Funktionen in C++.
jaja, die war ueber NQC
und stimmt!, jetzt hab ichs wieder, voids sind keine makros sondern inline funktioenen, aber wo liegt da der unterschied zu DEFINEs, etwa das DEFINE parametisierbar ist?
cp != mv
BlackJack

NQC ist stark an C angelehnt und das ``void`` an der Stelle wo es in beiden Sprachen steht, hat in C die Bedeutung das es keinen Rückgabewert gibt. Das trifft ja auch auf NQC zu.

Makros sind im groben nur textuelle Ersetzungen. Die müssen für sich genommen noch nicht einmal syntaktisch korrektes C sein. Funktionen bilden einen Gültigkeitsbereich für lokale Variablen und die Argumente. Die Argumente von Funktionsdefinitionen werden zur Laufzeit übergeben, die von Makros werden bei der Übersetzung eingesetzt. Denke das sind so die wichtigsten Unterschiede.
Antworten