Boron
Commander
- Registriert
- Sep. 2001
- Beiträge
- 2.785
Hallo zusammen,
ich habe da eine echt harte Nuss zu knacken. Meine sehr fundierten C-Kenntnisse reichen nicht aus, darum richtet sich diese Frage an echte C-Profis.
Ich habe einer Headerdatei ein define:
Das #define wird an vielen Stellen im Quellcode des Projekts genutzt.
Da dieses #define als Schnittstelle hässlich ist und auch Probleme verursacht, möchte ich eine C-Funktion als neue Schnittstelle einführen, das #define aus Kompatibiltätsgründen aber noch zulassen:
Jetzt würde ich gerne erreichen, dass jeder, der das "alte" #define nutzt einen Warnung durch den Präprozessor/Compiler angezeigt bekommt, dass das #define veraltet sei und im Code die C-Funktion direkt genutzt werden soll.
Der Compiler soll aber weiterlaufen und wie gehabt die ausführbare Datei erstellen.
Ich dachte an so etwas:
Allerdings akzeptiert der Compiler, wie befürchtet, eine solche Konstruktion nicht .
Ich hoffe das klar ist was ich erreichen will.
Vielleicht gibt es eine gänzlich andere Idee das zu erreichen.
ich habe da eine echt harte Nuss zu knacken. Meine sehr fundierten C-Kenntnisse reichen nicht aus, darum richtet sich diese Frage an echte C-Profis.
Ich habe einer Headerdatei ein define:
PHP:
#define GET_SYSTEM_TIME theSysTimeVariable
Da dieses #define als Schnittstelle hässlich ist und auch Probleme verursacht, möchte ich eine C-Funktion als neue Schnittstelle einführen, das #define aus Kompatibiltätsgründen aber noch zulassen:
PHP:
extern int GetSystemTime(void);
#define GET_SYSTEM_TIME GetSystemTime()
Der Compiler soll aber weiterlaufen und wie gehabt die ausführbare Datei erstellen.
Ich dachte an so etwas:
PHP:
extern int GetSystemTime(void);
#define GET_SYSTEM_TIME \
#warning "Define is deprecated. Use function instead" \
GetSystemTime()
Ich hoffe das klar ist was ich erreichen will.
Vielleicht gibt es eine gänzlich andere Idee das zu erreichen.