'da neler yapıyor Haskell'in C FFI ile ilgili bazı belgeleri okuyordum. Ve ben sadece çok iyi anlamadığım Storable
adında bir typeclass karşılaştım.Stoken tipinde yazım işleri Haskell
Bu tip bir sınıfın örnekleri, bu türlerin C koduyla arayüz oluştururken bunlara "işaretçi" eklemeleri gerekiyor mu? Ayrıca, sizeOf
,, peek
, poke
bireysel işlevleri neler yapar? peek
ve poke
görünüyor ve veri Ptr a
tarafından işaret edilen bir yere veri okumak veya veri yazmak için kullanılır. Bu doğru mu?
Ancak, sizeOf
ve alignment
'un ne anlama geldiğini bilmiyorum. Birisi kullanımlarını açıklığa kavuşturmak için örnekler verebilir mi?
@smilingbuddha evet, düzeltdim. Sonuç olarak, bir değerin haskell temsilinin büyüklüğü hakkında konuşmak mantıklı değildir, çünkü bu gösterim kullanıcı için çok opaktır. Haskell'in değerlerini nasıl sakladığını denetlemenin hiçbir yolu yoktur. – redneb
Teşekkürler! "Alignment" işlevini biraz daha ayrıntılı olarak açıklar mısınız? "Verilerim MyData = MyData {intarray :: [Int], dbarray :: [Double], length :: Int}" Hizalama için nasıl bir uygulama yazabilirim? " – smilingbuddha
Hizalama için, genellikle C'nin 'int 'türünün hizalamasını kopyalarsınız. Bunu şöyle yapabilirsin: 'alignment _ = alignment (undefined :: CInt)'. – redneb