typedef の一般的な使用法は、変数の「型」を有効にして、変数の背後にあるストレージ構造を再定義することなく、変数の目的をより適切に伝えることです。
ただし、変数のクラスのストレージ構造を一度に変更する方法として、typedef も見ています。
たとえば、私が定義した場合
typedef uint32_t my_offset_t
printf / scanf の場合を除いてmy_offset_t
、コードベースを oruint32_t
からchar
orに切り替えるのはuint64_t
、1行を変更して再コンパイルするのと同じくらい簡単です(sizeof
ハードコードされたサイズではなく、使用したと仮定します)。
printf
/ scanf
、if-elses、またはifdefsの周りのラッパー関数なしで、タイプに応じてフォーマット指定子を簡単な方法で交換する方法はありますか?
ありがとう!
興味のある人のために、私は 16 ビット オフセットを使用して 32 ビット オフセットで動作する LKM を変更していますが、必要に応じて最小限の変更で 64 ビット (または他の何か!) オフセットに移行できるようにしたいと考えています。