2

C ライブラリ (具体的には、ZeroMQ v3) 用の小さなラッパー ライブラリを作成したいと考えています。

しかし、CFFI で外部のネストされた構造体と共用体を宣言する方法が気になります。

それぞれの構造体/共用体の組み合わせを含む C ヘッダー ファイルは、ここにあります。

CFFI のドキュメントは今のところ役に立たず、同様の質問をオンラインでまだ見つけることができませんでした。

どんな助けでも嬉しいです!

4

1 に答える 1

2

defcstructこの場合に使用できます。また、ドキュメントには、外部構造体を定義する例があり、可能なスロットの 2 種類は単純 ( などの型:int) と集約 (他の構造体の名前) であるため、定義することを妨げるものは何もありません。その大きな結合を形成し、結合を構成するさまざまな構造 (defcunionコンストラクトもあります)。

独自の CFFI 実装には、次のような構造体の例とテストがあります。

(defcstruct s-short
  (a-char :char)
  (another-char :char)
  (a-short :short))

(defcstruct s-s-short
  (yet-another-char :char)
  (a-s-short s-short))

は上で定義したa-s-shortタイプであることに注意してください。s-short

于 2012-12-27T00:32:02.420 に答える