Python で C 言語との橋渡しは ctypes と struct2022年02月14日 06時39分54秒

Python から C 言語のライブラリや構造体を扱うときに使うライブラリは二つある。

cpytes は、C 言語のライブラリを呼び出すのと、C 言語の各データ型を Python 型に変換が出来る。struct は C 言語の各データ型を Python 型に変換と C 言語の構造体へのアクセスが出来る。

どちらも C 言語への橋渡しな為、似たような事が出来る。struct の方は構造体を中心とした型変換が得意で、ctypes は C ライブラリを呼ぶ為のライブラリで、その為の引数の変換と受渡しが主で、型変換の主体は struct に譲っている様な形だ。ctypes は各 C 言語型に対応する型を定義している。ctypes は C 関数を呼び出す時にこれらの型を使って呼び出すので必然的な形になる。それと対比するstruct は各 C 言語の型への変換書式を定義している。

プリミティブ型を個々に変換するだけなら、大した優越はない。構造体を変換するには、アラインメントやパディング等も考慮しなくてはならなくなってくるので、struct の方が便利。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2022/02/14/9464083/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。