Hallo Forum,
mal wieder eine Frage von mir:
Ist es möglich beim Kompilieren direkt die Parameter zu prüfen?
Bsp: in den Kommentaren steht der Code wie ich es meine
1 | void init(uint8_t reichweite, uint8_t genauigkeit)
|
2 | {
|
3 | //#if reichweite < 50
|
4 | //#define small_range 43*reichweite+43
|
5 | //#warning eine Reichweite kann zu klein sein
|
6 | //#elif reichweite > 200
|
7 | //#warning die Reichweite kann zu gross sein
|
8 | //#endif
|
9 | unsigned char buffer[2];
|
10 | buffer[0]=two;
|
11 | buffer[1]=reichweite;
|
12 | send(buffer,2);
|
13 | sleep(50);
|
14 | //#if genauigkeit > 16
|
15 | //#error Die Analogverstaerkung liegt ausserhalb des vorgesehenen Bereichs
|
16 | //#endif
|
17 | buffer[0]=one;
|
18 | buffer[1]=genauigkeit;
|
19 | send(buffer,2);
|
20 | }
|
Mir fällt auf die schnelle nur enums ein, aber ich will kein enum mit
256 Werten erstellen; structs gehen vllt auch, sind aber meiner Meinung
nach unkomfortabel.
Der Code ist aus einer Headerdatei, um den SRF10 zu bedienen.
Ich hoffe ich konnte meine Frage genau genug stellen ;)
PS: Zielhardware ist ein ATmega32