Macro Definitionen

29/05/2010 - 19:36 von Dirk Ruth | Report spam
Ich möchte innerhalb eines Macros neue Definitionen erzeugen, komme
aber nicht weiter.

z.B.

#define PROTO(pro,PRO1,dmin,dmax,def) \
int Get##pro##(void);\
void Set##pro##(int Value); \
#define PRO1##_MAX (dmax) \
#define PRO1##_MIN (dmin) \
#define PRO1##_DEFAULT (def)

soll mal bei Aufruf mit:

PROTO(TestFunc,TEST_FUNC,1,10,5)


durch folgendes ersetzen:

int GetTestFunc(void);
void SetTestFunc(int Value);
#define TEST_FUNC_MAX 10
#define TEST_FUNC_MIN 1
#define TEST_FUNC_DEFAULT 5


Wie muss mans richtig machen?

Dirk
 

Lesen sie die antworten

#1 Stefan Reuther
29/05/2010 - 19:48 | Warnen spam
Dirk Ruth wrote:
Ich möchte innerhalb eines Macros neue Definitionen erzeugen, komme
aber nicht weiter.

z.B.

#define PROTO(pro,PRO1,dmin,dmax,def) \
int Get##pro##(void);\
void Set##pro##(int Value); \
#define PRO1##_MAX (dmax) \
#define PRO1##_MIN (dmin) \
#define PRO1##_DEFAULT (def)



Das geht nicht. Makros können keine Pràprozessoranweisungen enthalten
und somit keine weiteren Makros erzeugen. Erzeuge doch stattdessen ein
enum mit den Konstanten.


Stefam

Ähnliche fragen