Cスタイルのユニオンを作る方法がわかりません。 documentationの例では、Cスタイルのユニオンを作る方法
(define a-union-type
(_union (_list-struct _int _int)
(_list-struct _double _double)))
(define a-union-val
(cast (list 3.14 2.71)
(_list-struct _double _double)
a-union-type))
すべてが動作します。しかし、キャストは_intに変更された場合:
(define a-union-val
(cast (list 3 2)
(_list-struct _int _int)
a-union-type))
を私はエラーを以下の取得:
何とか理にかなっているが、問題は、この組合を作成する方法、であるcast: representation sizes of from and to types differ
size of from type: 8
size of to size: 16
?
私はmake-union-typeと_unionの違いについても教えてください。それは私にはドキュメントから不明です。
ありがとうございます。
3.14と2.71は 'int'sではありません –
真ですが、これはここでは問題ありません...編集されました。 – Ondrej