C modülümde bir işlevin argümanı olarak uint8_t'in bir dizisini iletmek istiyorum.Bir Python Uzantısında nasıl uint8_t ile başa çıkılır?
Bu diziyi doğrudan ayrıştırmak için bir yöntem bulamadım, bu yüzden bir PyObject_t dosyasına ayrıştırarak PyTuple_t nesnesi olarak yinelemeyi yapıyorum. Bu şekilde, bu parçanın PyObject_t öğesinin her birini uint8_t'ye dökmem gerekiyor.
PyInt_FromUINT8_t işlevi veya benzeri bir şey olmadığında bunu nasıl yapabilirim?
bir PyTuple üzerinde yineleme ya PyList Pyin kullanarak
PyInt_FromLong
veyaPyLong_FromLong
kullanabilirsiniz yanı basittir t_FromLong geçersiz bir bellek erişimine neden olmaz mı? Bu işlev 4 veya 8 bayt okumaya çalışacaktır, ancak listenin her öğesi yalnızca 1 bayt ayrılmıştır. –'PyXXX' işlevlerinin hiçbiri, tamsayılara işaretçiyi kullanmaz; Yani 'PyInt_FromLong' örneğin bir 'int' argümanı olarak kabul ederdi ve normal tip dönüşümleri ve tamsayı koersiyonlarına tabi olurdu. Ne yapmaya çalıştığını biraz daha açıklayabilir misin? –
Soruyu güncelledim. Şimdi açık olup olmadığını kontrol et. –