предупреждение: вычисленное значение не используется - PullRequest
4 голосов
/ 02 апреля 2012

Почему я получаю это предупреждающее сообщение «предупреждение: вычисленное значение не используется» в строке «BIO_flush (b64);» и как от этого избавиться?

unsigned char *my_base64(unsigned char *input, int length)
{
    BIO *bmem, *b64;
    BUF_MEM *bptr;

    b64 = BIO_new(BIO_f_base64());
    bmem = BIO_new(BIO_s_mem());
    b64 = BIO_push(b64, bmem);
    BIO_write(b64, input, length);
    BIO_flush(b64);
    BIO_get_mem_ptr(b64, &bptr);

    unsigned char *buff = (unsigned char *)malloc(bptr->length+1);
    memcpy(buff, bptr->data, bptr->length-1);
    buff[bptr->length-1] = 0;

    BIO_free_all(b64);

    return buff;
}

1 Ответ

14 голосов
/ 02 апреля 2012

Обычный способ справиться с этими ошибками - «явно отбросить возвращаемое значение» :

(void) BIO_flush(b64);

В качестве альтернативы вы можете отключить это предупреждение, добавив-Wno-unused-value flag.


Выше очевидно, что вы не заинтересованы в возвращаемом значении.Если вы не уверены, посмотрите в документации, что именно она возвращает, и решите, хотите ли вы сохранить / использовать это или нет.

...