Hallo Experten!
ich habe eine Frage zu Preprozessor und mein C-Code...
1. in meiner header-Datei hab ich folgendes
1 | #define SENSOR_0 0xe0
|
2 | #define SENSOR_1 0xe2
|
3 | #define SENSOR_2 0xe4
|
4 | #define SENSOR_3 0xe6
|
5 | #define SENSOR_4 0xe8
|
6 | #define SENSOR_5 0xea
|
7 | #define SENSOR_6 0xec
|
und dazu diese makro-Funktion
1 | #define getSensAdr(NR) SENS_ADR_##NR
|
so... nun wenn ich im C-Code folgendes schreibe
bekomme ich den Wert 0xea zurück, bis dahin alles super ist genau das
was ich will!
doch das Problem ist wenn ich anstatt einen int, eine Variable übergeben
will, zB. so:
dann bekomme ich folgende Fehlermeldung vom Compiler (gcc)
../sensor.c:46: error: 'SENS_ADR_i' undeclared (first use in this
function)
irgendwie muss das auch gehen oder nicht?
irgendwie mit # und mit ##...
irgendeine Idee???
Vielen Dank!
schöne Grüße