Hi, ich habe folgendes: aaa.c aaa.h bbb.c bbb.h in bbb.h gibt es ein define bbb_1 welches ich in aaa.h umdefinieren (nach aaa_1) und in aaa.c verwenden will. In aaa.c gibt es eine funktion (aaaDo()) sowie zugehörigen Prototypen in aaa.h welche ich in bbb.c verwenden will. Für diesen Fall würde ich einfach klassisch den Header von aaa in bbb.c anziehen. Wie aber sieht das mit dem Fall der defines aus. Da müsste ich ja den Header von bbb in den header von aaa einbinden, das klingt nicht gut. Gruß, T.
Hä? mach mal ein gescheites Beispiel mit vernünftigen Namen und den angehängten Dateien.
datei aaa.h
#define AAA_1 BBB_1 //hier will ich BBB_1 nutzen!
void aaaDo (void); //prototyp
datei aaa.c
#include "aaa.h"
void aaaDo (void)
{
uint8_t x,y;
x=y+AAA_1;
}
datei bbb.h
#define BBB_1 27
datei bbb.c
#include "bbb.h" //damit ich das Define BBB_1 nutzen kann
#include "aaa.h" //damit ich die Funktion aaaDo() nutzen kann
void bbbDo (void)
{
uint8_t x,y;
x=y+BBB_1;
void aaaDo (void);
}
Ist soetwas denkbar?
Thorsten S. schrieb: > Da müsste ich ja den > Header von bbb in den header von aaa einbinden, das klingt nicht gut. Warum nicht?
Thorsten S. schrieb: > entschuldigung, bin im Unterforum verrutscht. Hab's mal ins GCC-Forum verschoben und hoffe, dass das passt.
Thorsten S. schrieb: > Ist soetwas denkbar? Denkbar schon. Aber das ist die falsche Frage. Die richtige Frage ist: Ist es sinnvoll oder ist es fehleranfällig? Und solange du dich in wirren Namensschemata ala aaa und bbb ergehst, kann man das nicht entscheiden. 2 Fragen: Wozu eigentlich das AAA_1, wenn es sowieso identisch zu BBB_1 ist Wäre es nicht eventuell klüger, die eine Konstante als Konfigurationswert anzusehen, der überhaupt in ein eigenes Header File verbannt wird, in dem alle Konfigurationen enthalten sind cccc.h
1 | #define CONFIG_VAL 127
|
aaa.c
1 | #include "aaa.h" |
2 | #include "ccc.h" |
3 | |
4 | void aaaDo (void) |
5 | {
|
6 | uint8_t x,y; |
7 | x=y+CONFIG_VAL; |
8 | }
|
bbb.c
1 | #include "bbb.h" |
2 | #include "ccc.h" |
3 | |
4 | void bbbDo (void) |
5 | {
|
6 | |
7 | uint8_t x,y; |
8 | |
9 | x=y+CONFIG_VAL; |
10 | |
11 | aaaDo(); |
12 | }
|
Ob das sinnvoll ist oder nicht, kann man mit den Namen aaa bzw bbb so nicht entscheiden.
Hey, entschuldigt dass ich mich jetzt erst wieder melde, aber ich hatte noch andere Dinge in c zu lösen. Also ich habe mir so eine soft spi gebastelt: spi.c spi.h die benutze ich in mehreren projekten.. darin enthalten sind defines für: PORT,PIN und DDR sowie die Pins der SPI. Nun will ich eine "Schale" drum rum basteln. In einem Fall z.B. hc595.c hc595.h Es geht dabei um ein Schieberegister, das Teil hat zu den Pins CLock und Data (aus SPI) noch ein paar pins für datenübernahme (Strobe_Clock) u. Out enable (OE) usw.. nun würde ich das ganze gern so gestalten das ich in dem Header des HC595 alle Pins, auch die der SPI festlege, damit ich auf einen Blick sehen kann wo die Hardware (hc595) angeschlossen ist. Also würde ich im Header des HC595 ebenfalls PORT,PIN und DDR festlegungen treffen. Ich würde nun die Defines aus HC595.h in SPI benutzen, jedoch nutzt hc595.c ja die funktionen aus SPI.c über SPI.h Prototypen. Irgendwie dreht man sich mit diesem eigentlich aus meiner Sicht logischen Ansatz ein bissl im Kreise... oder?:-) Gruß, Thorsten
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.