Un uso comune di typedefs è di abilitare il "tipo" di una variabile per comunicare un'idea migliore dello scopo di una variabile senza ridefinire la struttura di archiviazione dietro di esso.Identificativi del typedef e del formato printf
Tuttavia, sto anche vedendo typedefs come un modo per modificare la struttura di archiviazione per una classe di variabili in un colpo solo.
Ad esempio, se definire
typedef uint32_t my_offset_t
e hanno variabili del tipo my_offset_t
, la commutazione del codice-base da uint32_t
a char
o uint64_t
è semplice come cambiare una riga e ricompilazione (supponendo ho utilizzato sizeof
anziché taglie codificate), tranne nel caso di printf/scanf.
Esiste un modo per scambiare formato-committenti a seconda del tipo in qualche modo semplice, senza funzioni wrapper per printf
/scanf
, se-elses, o ifdefs?
Grazie!
Per chiunque sia interessato, sto modificando un LKM che utilizza offset a 16 bit per lavorare con offset a 32 bit, ma si vuole che sia in grado di andare a 64-bit (o qualcos'altro!) Compensazioni se necessario con modifiche minime.
Grazie per la risposta :) ho accettato l'altra, però, perché si tratta di una risposta più completa, nel caso in cui nessun altro è interessato a questa domanda. – Vanwaril