Wozu lhs und rhs?
-
Hallo Ihr,
studiere Maschinenbau und wollte die Ferien nutzen mich wieder in C++ einzuarbeiten. Tippe gerade Programmbeispiele ab und versuche sie nachzuvollziehen.
Hab mit einem sehr kurzen, einfachen Programm angefangen: Summenbildung.
//
// Berechnung der Summenbildung
//#include <iostream>
using namespace std;
int summe (int,int); // Deklaration einer Funktionint main()
{
int a, b;
cout<<"Bitte in 2 Zeilen 2 Zahlen eingeben\n";
cin>>a;
cin>>b;
cout<<"Die Summe von "<<a<<" und "<<b<<" ist "<<summe (a,b)<<".\n";
system ("pause");
}
int summe (int lhs, int rhs)
{
return lhs + rhs;}
Verstehe überhaupt nicht, was diese lhs und rhs soll... Das Programm würde doch ohnen lhs und rhs auch schon die Summenbildung durchführen oder nicht?
Gibt es vielleicht eine Seite, wo ich solche "Vokabeln" nachlesen kann? Mir ist es jetzt ganz oft passiert, dass in der Fh c++ und c durcheinander verwendet wird und ich es dann in keinem Buch für c++ finde. Verwende momentan "C++ Programmierung für Anfänger von Florian Wollenschein".
Danke für eure Mühe
Grüßli Michèle
-
lhs und rhs sind vom Programmierer der Funktion gewählte Variablennamen ohne jede besondere sprachliche Bedeutung. Er hätte sie genausogut auch dkjvhdfjg84uyhurbf und dnfu8wech9whf89wehf4 nennen können, aber dann wäre weniger klar, wofür die Variablen benutzt werden sollen (lhs steht für left hand side, die Bedeutung von rhs darfst du dir selber erschließen
).
-
ich glaub du solltest mal dein hirn einschalten dann brauchst auch kein buch...
-
google ist so ein Nachschlagewerk
lhs -> kommt nix gscheits, rhs ebenso.
ABER "lhs rhs" -> http://answers.yahoo.com/question/index?qid=20080903013225AAidwbW
Es sind einfach nur Bezeichner für die Argumente. "linker Summand, rechter Summand".
-
Das Beispiel verdeutlicht einfach nur, wie man Funktionen nutzen kann, um ein Ergebnis zu erhalten. a und b sind Variablen, die in main bekannt sind, die Funktion kennt diese aber nicht, da sie in einem anderen Namensraum liegen. In summe muss es daher Namen für die übergebenen Parameter geben, sodass man diese verwenden kann.
-
michelet schrieb:
...
Verwende bitte bei Code die C/C++-Tags, und vermeide Tabulatoren im Code. Zudem sei etwas konsequenter bei Einrückungen und Leerzeichen (z.B. trennst du bei der Summenfunktion den Funktionsnamen mit Leerzeichen von der Parameterliste, bei der main-Funktion wiederum nicht...).
#include <iostream> using namespace std; int summe(int, int); // Imho eine Unsitte, die Variablenbezeichner weg // zu lassen (Sie dokumentieren häufig den Sinn). int main() { int a, b; cout << "Bitte in 2 Zeilen 2 Zahlen eingeben\n"; cin >> a; cin >> b; cout << "Die Summe von " << a << " und " << b << " ist " << summe(a, b) << ".\n"; system("pause"); } int summe(int lhs, int rhs) { return lhs + rhs; }
michelet schrieb:
Verstehe überhaupt nicht, was diese lhs und rhs soll... Das Programm würde doch ohnen lhs und rhs auch schon die Summenbildung durchführen oder nicht?
Ohne irgendeine Form der Bezeichner kannst du die Werte nicht ansprechen. Wie willst du das tun? In deiner Summenfunktion existieren a und b nicht. Und die Parameter werden benannt um diese ansprechen zu können. Das hat aber nichts mit C++ zu tun, gilt unter C ebenso (wenn man nicht zu globalen Variablen greift - was in der Regel ein Zeichen schlechter Programmierung ist).
-
lhs = left-hand side = linke seite
rhs = right-hand side = rechte seite