Hallo, kann jemand mir die folgenden Code erklären? Warum liegt DECLARE vor byte? Ich meine, das ist sinnlos. Vielen Dank #define Config_C #ifdef Config_C #define DECLARE #else #define DECLARE extern #endif DECLARE byte OS_Config_Save( void );
damit wird die Fkt. als extern deklariert (was standard ist)... extern ist der Gegensatz zu static... und extern steht nur da wenn du die 1. Zeile löscht
Vielen Dank für deine Erklärung. Kannst Du vieleicht die Code noch einmal erzählen? #ifndef V_MEMRAM0 # define V_MEMRAM0 #endif #ifndef V_MEMRAM0 # define V_MEMRAM0 #endif #ifndef V_MEMRAM0 # define V_MEMRAM0 #endif V_MEMRAM0 extern V_MEMRAM1 _c_SlaveResp_buf V_MEMRAM2 SlaveResp;
_c_SlaveResp_buf ist ein Struktur, z.B: typedef structur { //... }_c_SlaveResp_buf ;
Nicht wirklich. Hauptsächlich deshalb, weil du beim abschreiben Fehler gemacht hast :-) Aber ganz im Ernst, so schwer ist das wirklich nicht. #define xyz abc legt fest, dass in Folge der Text 'xyz' durch den Text 'abc' zu ersetzen ist. ('abc' kann durchaus auch ein leerer Text sein, so wie in #define xyz Damit teilt man dem Präprozessor mit, er möge den Text xyz durch einen leeren Text ersetzen. Aus #dfine xyz xyz int MyVar; wird so der Programmtext int MyVar; ) Mittels #ifdef abc .... mach was #endif kann man auch Abfragen darüber machen, ob eine Textersetzung für den Text 'abc' definiert wurde. Nur dann wenn es eine solche Textersetzung gibt, wird der Teil .... mach was in den Programmtext inkludiert. Jetzt kannst du dir selbst zusammenreimen, was der ursprüngliche (richtige) Programmcode in deinem Programm macht. Im übrigen empfehle ich das Studium eines C-Grundlagenbuches. Eine Sprache wie C kann man nicht durch Versuch und Irrtum erlernen und ein Forum ist nun mal kein Ersatz für fehlende Literatur, in der die Kentnisse systematisch und vollständig aufgebaut werden. http://www.mikrocontroller.net/articles/C-Pr%C3%A4prozessor
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.