Ich habe viele verschiedene 3-Achsen-Sensoren, für die ich Testcode schreibe. In den C-Dateien für jede von ihnen habe ich die gleiche Zeichenkette definiert:
%Vor%was ich benutze, wenn ich "für" Schleife Ergebnisse zum Drucken der Achse, die wie folgt versagt:
%Vor%Ich dachte, um etwas Platz zu sparen, könnte ich ein Zeichenfolgenarray in einer Header-Datei definieren, um überall zu verwenden.
Ich habe eine Menge Dinge ausprobiert, aber ich kann anscheinend kein Array von Strings in meiner Header-Datei definieren, die ich durchlaufen kann, um eine Kompilierung zu bestehen.
Wenn Sie es in eine Header-Datei einfügen müssen, verwenden Sie extern
oder static
:
Extern teilt dem Linker mit, dass eine globale Variable namens axis
in einer unserer Implementierungsdateien definiert ist (d. h. in einer .c
-Datei), auf die ich hier verweisen muss.
static
dagegen sagt dem Compiler das Gegenteil: Ich muss in der Lage sein, diese Variable zu sehen und zu verwenden, aber sie nicht in den Linker exportieren, so dass sie nicht extern oder referenziert werden kann Namenskonflikte verursachen.
Fügen Sie dies in Ihre Header-Datei
ein %Vor%und behalten Sie dies in einer C-Datei:
%Vor%Michael Barr (Netrino) rät von der Angabe der Speicherung in einer Header-Datei ab. In ähnlicher Weise duldet der eingebettete Systemcodierungsstandard von Netrino die Verwendung von externem Speicher in Kopfzeilen nicht.
Im Allgemeinen stimme ich diesen Prinzipien zu, und ich habe herausgefunden, dass es eine gute Idee ist, Speicher in die C-Dateien zu integrieren, die sie benötigen, und nur diese.
Tags und Links string c header-files