Wertebereich einer Variable ermitteln

Gast #2841538
Lesenswert?

Hallo, ich habe eine Variable vom Typ my_size_t die ich in verschiededen 
Projekten zb zum definieren von Puffer-Längenangaben einsetze.

Mal ist sie uint8_t mal uint16_t.

ich habe eine Funktion
 void buffer_init(size_t);
und möchte je nach size_t die größtmögliche Zahl in den Funktionsaufruf 
übergeben.
 buffer_init(UINT16_MAX) oder buffer_init(UINT8_MAX)

Ich müsste also mit bedingter Compilierung arbeiten ...

Gibt es eine elegante Art herauszubekommen, welchen Wertebereich die 
Variable hat? So dass ich ich einfach schreiben kann

 buffer_init(MAX(typeof(size_t));

Danke, Adib.
Gast #2841618
Lesenswert?

sowas hatte ich mir halt auch überlegt. Dachte aber; frag mal die 
Netzgemeinde, ob es was universelles gibt, wo ich nicht jeden speziellen 
Einzelfall bearbeiten muss.

Im übrigen liefert sizeof() die Größe in Bytes nicht in Bits.

Jetzt habe ich geschrieben:
 buffer_init((1 << (sizeof(my_size_t) * 8)) - 1);

habe aber keineAhnung, ob das bei 16bit auf dem Atmel auch noch 
funktioniert.


Adib.

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