008
01.08.2004, 13:15 Uhr
Hans
Library Walker (Operator)
|
Zitat von 0xdeadbeef: |
Wobei du dann aber in aller Regel die Startadresse in Assembler hinbasteln wirst, und dann hast du gar kein main. void main ist jedenfalls grober Unfug, schon weil ein strenger C- bzw. C++-Compiler dir das nicht abkauft.
|
Hi Beefy,
nö, warum sollte ich die Staradresse in Assembler einsetzen, wenn der Compiler das auch kann? Und dann erklär mir doch mal, warum Du auf die Rückgabe eines Wertes von main() auch bei Mikrocontrollern bestehst. Wozu soll ein Programm, das auf einem µC läuft einen Rückgabewert definieren, wenn es gar keine Shell gibt, die es aufgerufen hat, und den Wert irgendwie verarbeiten könnte. Und wenn das Programm eh das einzige ist, das dort läuft, meisst in einer Endlosschleife, macht es erst recht keinen Sinn, das ein Rückgabewert definiert wird. An wen oder was sollte der denn auch gegeben werden? Und Compiler, die µC-Code erzeugen, sind auch so eingestellt, das sie void main(void) akzeptieren. Ein µC-Programm sieht doch meisst so aus:
C++: |
#include "defs.h" // controllerspezifische deklarationen // evtl. weitere Deklarationen, oder Module zur Ansteuerung von // bestimmter Hardware
// Funktionsprototypen, soweit sie nicht in include-dateien ausgelagert sind
void main(void) { // Variablen def. init(); // Ein paar initialisierungen; es können auch mehrere Funktionen sein
while(1) { // hier wird das erledigt, wozu die Schaltung entwickelt wurde }
} // von main
// weitere Funktionen...
|
Ein Praxisbeispiel dafür findest Du hier: Quellcodes und die zugehörige Doku als PDF. - Es geht darum, eine PC-Tastatur mit dem Controller abzufragen, damit man die Werte weiter verarbeiten kann.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 01.08.2004 um 13:17 Uhr von Hans editiert. |