Makro mit ## für funktionsparameter

Gast #6567622
Lesenswert?

Hallo,
ist es möglich in c mittels ein Makro für ein Funktionsparameter eine 
Funktion aufzurufen?
1
#define MAKRO(spn) (DTC_##spn##_1)
2

3
updateDtc(MAKRO(sensor->spn), TRUE);
sensor ist eine struktur wo unter anderem die spn hinterlegt ist.
wenn ich es so bauen möchte, bekomme ich den fehler:
'DTC_snsor' undeclared

Der nimmt also nicht den wert, welcher in sensor->spn hinterlegt ist.
Ist so etwas überhaupt möglich?
#6567903
Lesenswert?

Lars schrieb:
> wenn ich es so bauen möchte, bekomme ich den fehler:
> 'DTC_snsor' undeclared

Ja, dein Makro sagt ja, dass er aus dem sensor->spn DTC_sensor->spn_1 
machen soll. Und offenbar gibt es nichts, das DTC_sensor heißt.

> Der nimmt also nicht den wert, welcher in sensor->spn hinterlegt ist.
> Ist so etwas überhaupt möglich?

Der Präprozessor macht Textersetzung im Quellcode. Was später mal 
irgendwann bei der Ausführung in irgendwelchen Variablen steht, kann er 
gar nicht wissen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren