c++bytebuffer留着用,要不每次要写或者找

本文探讨了C++中ByteBuffer的设计与使用,讲解如何高效地处理字节序列,包括写入与查找操作,帮助优化内存管理。
摘要由CSDN通过智能技术生成

头文件

#ifndef __MK_BYTE_BUFFER_H__
#define __MK_BYTE_BUFFER_H__

#include <iostream>

const int endian = 1;
#define is_bigendian() ((*(char*) &endian) == 0)
#define is_littlendbian() ((*(char*) &endian) == 1)
// size of data 1M
#define BUFF_SIZE_MAX 1024 * 1024

namespace MK
{
    template<typename T> T ConvertDigitToNet(T v);
    template<typename T> T ConvertNetToDigit(T v);

    class ByteBuffer
    {
    private:
        char *m_cBuffer;

        size_t m_rpos;              
        size_t m_wpos;              
        size_t m_nSize;             
    public:
        explicit ByteBuffer(size_t size = 0):m_rpos(0), m_wpos(0), m_nSize(size)
        { size_t nSize = size <= 0 ? BUFF_SIZE_MAX:size; m_cBuffer = new char[nSize];}

        ~ByteBuffer() { delete[] m_cBuffer; }

        size_t readNet(int &v);
        size_t readNet(short &v);
        size_t read(int &v)     { return read((char*)&v, 0, sizeof(int)); }
        size_t read(char &v)    { return read((char*)&v, 0, sizeof(cha
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值