www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variablen zwischen Funktionen


Autor: TeleTubby Reloaded (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich bin grad dabei, mich mit GCC vertraut zu machen. Im Moment hab ich 
Verständnisschwierigkeiten was Variablen und deren Übertragung zwischen 
Funktionen anbelangt. Vielleicht kann mir jemand bei folgendem Beispiel 
helfen und es richtig stellen:





#include <math.h>


void main (void)
   {
   int zahl;
   zahl = 16;

   int addition;
   int multiplikation;
   int potenz;

   rechnung(zahl);

   printf(addition, multiplikation, potenz)
   }





void rechnung(zahl)
   {
   addition = zahl + zahl;
   multiplikation = zahl * zahl;
   potenz = pow(zahl,zahl);

   return addition, multiplikation, potenz;
   }

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt mehrere Möglichkeiten, das zu realisieren. Statt dir hier jetzt 
den fertigen Code hinzuschmeißen, wäre es für dich deutlich lohnender, 
wenn du dir ein C Buch besorgst (bekommt man auch in nahezu jeder 
Bibliothek geliehen) und das einmal durcharbeitest. Denn der fertige 
Code würde Pointer enthalten, und es sieht nicht so aus, als ob du die 
schon kennst.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Statt dir hier jetzt den fertigen Code hinzuschmeißen, wäre es für
>> dich deutlich lohnender, wenn du dir ein C Buch besorgst (bekommt
>> man auch in nahezu jeder Bibliothek geliehen) und das einmal durcharbeitest.

Sehe ich genau so. Es fehlt anscheinend schon am Aufbau einer Funktion.
void rechnung (zahl)
 return ....
Man sollte wirklich erst mal das Grundlagenzeugs durchlesen, denn wenn 
man Programmieren unstrukturiert lernt, merkt man sich am Anfang 
meistens etwas falsches, was erstmal wieder gelöscht werden muß und den 
Prozeß auch noch verlängert ...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Denn der fertige Code würde Pointer enthalten...
Er könnte auch globale Variable enthalten...

@ TeleTubby Reloaded
void main (void)
   {
   int zahl;
   zahl = 16;

   int addition;
   int multiplikation;
   int potenz;

   rechnung(zahl);

   printf(addition, multiplikation, potenz)
   }
Deine Quellcode-Formatierung/Einrückung wird dir noch einige Haare 
kosten...
Wenn inakzeptabel das Gegenteil von akzeptabel, und tolerant von 
intolerant wäre, dann wäre deine Schreibweise tuitiv  ;-)
Sieh dir mal andere C-Programme an.

Autor: Das Nichts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: TeleTubby Reloaded (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja, es sind auch bloß die ersten Gehversuche...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TeleTubby Reloaded schrieb:
> naja, es sind auch bloß die ersten Gehversuche...

Trotzdem hat es wenig Sinn, wenn du hier unsystematisch vorgehst.
Zum Thema Funktionen und Argumentübergabe hat jedes noch so grindige 
Buch mindestens 20 Seiten lang Dinge zu erzählen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.