Gast
#379997
benötige ein c programm, welches zum ansteuern einer maschine dient!!! Die maschine sollte nach einen fahrprofil fahren!!!! mfg maier
|
Anzeige
|
c-programm
Gast
#379997
benötige ein c programm, welches zum ansteuern einer maschine dient!!! Die maschine sollte nach einen fahrprofil fahren!!!! mfg maier
Gast
#379998
Ist hier irgendwo eine Frage? Was ist ein 'fahrprofil'?
Gast
#380000
// Das ist doch kein Problem
void main (void)
{
while(1)
fahrprofil();
}
/* Wenn du etwas detailiertere Antworten willst, solltest du eher nach
Details fragen! */
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!
Nicht lange, irgendwann ist der Stack voll. Ein Problem rekursiver Algorithmen.
Gast
#380003
@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... > 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.
Gast
#380005
> IMHO ist das kein tail-call Argl! > die while-Schleife erneut durchlaufen wird Stimmt, Du hast recht! Grr... Habe das "while(1)" glatt übersehen...
Gast
#380006
Ihr habt das #include <fahrprofil.h> vergessen... @Stcküberlauf: Der Stacküberlauf ist doch irrelevant, da das Programm gar kein RAM verwendet, oder? Aber irgendwann läufts auch über RAM-Grenzen hinaus, aber auch irrelevant, da die Rücksprungdaten nie wieder gebraucht werden 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.
Gast
#380009
.....und ich habe immer gedacht, C- Programme wären schwer zu verstehen. :-))) Mit wie wenig Aufwand man eine komplexe Maschine steuern kann! ROFL! Simpel
Gast
#380010
Oh Mann, wie kann man nur so blöd sein und auf diesen Troll reinfallen? - Oops, habe ich gerade nicht auch was dazu gesagt? - Zeig mir hier einen einzigen, der auf den Troll reingefallen ist...
Gast
#380012
Mann, seit Ihr kompliziert: p; Den Rest packt man in den Compileraufruf! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|