mikrocontroller.net

Forum: Offtopic c-programm


Autor: maier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
benötige ein c programm, welches zum ansteuern einer maschine dient!!!
Die maschine sollte nach einen fahrprofil fahren!!!!

mfg maier

Autor: unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist hier irgendwo eine Frage?

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

Bewertung
0 lesenswert
nicht lesenswert
Was ist ein 'fahrprofil'?

Autor: Black Friday (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
// Das ist doch kein Problem

void main (void)
{
  while(1)
    fahrprofil();
}

/* Wenn du etwas detailiertere Antworten willst, solltest du eher nach
Details fragen! */

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab eine noch bessere ide!!!!!!!!!
einfach so machen!!!! da spart man sich die zweite funktion!!!!!!

void main (void)
{
  while(1)
    main();    // !!!!!!!! hier ist wichtig !!!!!!
}

ich weis aber nicht! ob das überhaupt geht!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht lange, irgendwann ist der Stack voll. Ein Problem rekursiver
Algorithmen.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus:

> Nicht lange, irgendwann ist der Stack voll.
> Ein Problem rekursiver Algorithmen.

Nö, stimmt in diesem konkreten Fall nicht.

Das ist ein Tail-Call, und Tail-Calls benötigen keinen Stack.

Den ganzen C, C++, Java, PHP usw. "Programmierern" täte mal ein
Ausflug in die Welt der Funktionalen Programmiersprachen gut.

Und in der Tat is mir auch bekannt, dass es noch heute C-Compiler, auch
Kommerzielle für sehr viel Geld verkaufte, gibt, die Tail-Calls nicht
optimieren können und tatsächlich einen Stack-Überlauf produzieren.

Naja, wer solche kaputten Compiler benutzt, oder benutzen muss, oder
sogar einkauft, naja da kann man eben nicht mehr helfen...

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nö, stimmt in diesem konkreten Fall nicht.
> Das ist ein Tail-Call, und Tail-Calls benötigen keinen Stack.

IMHO ist das kein tail-call, da nach dem rekursiven Aufruf (angenommen
er kehre zurück) die while-Schleife erneut durchlaufen wird und kein
"return" stattfindet.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> IMHO ist das kein tail-call

Argl!

> die while-Schleife erneut durchlaufen wird

Stimmt, Du hast recht!

Grr... Habe das "while(1)" glatt übersehen...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr habt das

#include <fahrprofil.h>

vergessen...

@Stcküberlauf: Der Stacküberlauf ist doch irrelevant, da das Programm
gar kein RAM verwendet, oder?

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber irgendwann läufts auch über RAM-Grenzen hinaus, aber auch
irrelevant, da die Rücksprungdaten nie wieder gebraucht werden

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Rücksprungadressen werden auch weiter auf den Stack gepusht, wenn
dieser erschöpft ist. Irgendwann wird das Programm (auf geeigneten
Architekturen) wegen "General Protection Fault" abgebrochen werden.

Autor: Simpel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.....und ich habe immer gedacht, C- Programme wären schwer zu verstehen.
:-)))

Mit wie wenig Aufwand man eine komplexe Maschine steuern kann!

ROFL!

Simpel

Autor: xXx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Mann, wie kann man nur so blöd sein und auf diesen Troll reinfallen?


- Oops, habe ich gerade nicht auch was dazu gesagt? -

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig mir hier einen einzigen, der auf den Troll reingefallen ist...

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann, seit Ihr kompliziert:

p;


Den Rest packt man in den Compileraufruf!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Yahoo-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.