Зачем мне это предупреждающее сообщение «предупреждение: вычисленное значение не используется» в строке «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;
}
'BIO_flush()', вероятно, объявлено как возвращаемое, но вы не сохраняете результат нигде или не используете в выражении. – jrok
BIO_flush() будет объявлен как макрос, который вычисляет значение. Поскольку результат не присваивается переменной, вы получите это предупреждение. Я думаю, что если BIO_flush был реальной функцией, это предупреждение не произойдет. Я думаю, чтобы избежать предупреждения в разделе «Если вам нужно назначить временный –
' BIO_flush' также может быть макросом, расширяющимся до выражения с помощью оператора запятой, где левая сторона оператора запятой не имеет побочного эффекта. Тем не менее, не видя определения 'BIO_flush', все, что просто догадывается. – celtschk