Forum: Offtopic c-programm


von maier (Gast)


Lesenswert?

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

mfg maier

von unbekannt (Gast)


Lesenswert?

Ist hier irgendwo eine Frage?

von Karl H. (kbuchegg)


Lesenswert?

Was ist ein 'fahrprofil'?

von Black Friday (Gast)


Lesenswert?

// Das ist doch kein Problem

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

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

von D. W. (dave) Benutzerseite


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!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Unbekannter (Gast)


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...

von Christoph _. (chris)


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.

von Unbekannter (Gast)


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...

von Rahul (Gast)


Lesenswert?

Ihr habt das

#include <fahrprofil.h>

vergessen...

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

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

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

von Christoph _. (chris)


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.

von Simpel (Gast)


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

von xXx (Gast)


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? -

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Zeig mir hier einen einzigen, der auf den Troll reingefallen ist...

von Guido Körber (Gast)


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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.