Я использую этот метод в google::protobuf::io::CodedOutputStream для записи целых чисел переменной длины в буфер:
static uint8 * WriteVarint32ToArray(uint32 value, uint8 * target)
Каков соответствующий метод чтения одного и того же значения?
Я вижу это в документации:
static const uint8 * ReadLittleEndian32FromArray(const uint8 * buffer, uint32 * value)
static const uint8 * ReadLittleEndian64FromArray(const uint8 * buffer, uint64 * value)
Но ни один из них, кажется, не делает то, что мне нужно. Я ожидал ReadVarint32FromArray, но он кажется недоступным. Поскольку я читаю и записываю буфер памяти, а не поток, мне нужен статический метод, такой как uesd для записи.
Документация: https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream





CodedInputStream::ReadVarint32. Версии static нет, вам нужно будет фактически создать экземпляр CodedInputStream, поддерживаемый вашим массивом; есть конструктор, принимающий указатель и размер.