Vektörün boyutunu tamponda eklemek istiyorum. Ama boyutun ne olduğunu tam olarak bilmiyorum. Sonuçta, std :: size_t sabit bir boyutta olamaz. Aklımda, yerine uint64_t kullanmayı düşünüyorum. Ardından tampon bu istiyorum: Bir seri arabelleğe serileştirme vektörü <int32_t> hakkında mı?
8 bytes length | 4 bytes element1 | 4 bytes element2 | ... |
Şimdi soru uint64_t std :: size_t anlamına gelmez olduğunu. Daha iyi bir fikir takdir edilecektir.
Ben ne istediğini anlamıyorum. Dört bayt veya sekiz bayt veya belirli bir endianness veya formatta boyutu kodlamak için ne kullanırsanız kullanın, o zaman sadece bunu yapın. Sorun nedir? Boyutu tutmak için 'size_t' kullanabilirsiniz - boyutunu tutabildiği sürece ne tür bir kullanım yaptığınız fark nedir? –
Ayrıca, taşınabilir olmak için, öngörülebilir endianiteye sahip olduğunuzdan emin olun, örn. sokete göndermeden önce 32 bit varlıklar için htonl() kullanın. –
@David Schwartz Soru şu ki, vektörün büyüklüğünün ne olduğunu bilmiyorum. Bu boyutu tutmak için bir uint64_t değişkeni kullanamam ve bu değişkeni arabelleğe yazamam. – NiklausTseng