Bir BLE sensörünün kayan değerini okumak için iki çözümle karşılaştım. Memcpy yöntemi basittir ve mantıklıdır, ancak karşılaştığım diğer yöntem bana çok açık değildir. Birisi işaretçi döküm yönteminin nasıl çalıştığını tam olarak açıklayabilir mi?memcpy vs okuma için işaretçi döküm BLE sensörü yüzer
// Represents data read from BLE device. Float value of 1.5
uint32_t data = 0x3fc00000;
float sensorValue;
// Memcpy method, makes sense and is straightforward
memcpy(&sensorValue, &data, sizeof(sensorValue));
// Works, but don't fully understand exactly how
sensorValue = *(float *)&data;
Her ikisi de tanımlanmamış davranışları çağırır. – Olaf
@Olaf özenle tasarlanıyor? Şamandıra değerini almak için doğru yol ne olurdu? –
http://port70.net/~nsz/c/c11/n1570.html#6.5p6. Kesinlikle uygun olmak için standart kütüphane ve normal operatörlerin işlevlerini kullanabilirsiniz. Yeniden yorumlama işlevleri varsa matematik kütüphanesini de kontrol edebilirsiniz. Bunun bir ikilem olduğunun farkındayım. Ancak, float formatının platformunuzda ve sensörden aynı olup olmadığını belirtmezsiniz. Uyum ve endianess söz değil. – Olaf