Warum bekomme ich diese Warnmeldung "Warnung: Wert berechnet wird nicht verwendet" in Zeile "BIO_flush (b64);" und wie kann ich es loswerden?Warnung: Wert berechnet wird nicht verwendet
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()' ist wahrscheinlich deklariert, um etwas zurückzugeben, aber Sie speichern das Ergebnis nirgendwo oder in einem Ausdruck. – jrok
BIO_flush() wird als ein Makro deklariert, das einen Wert berechnet. Da das Ergebnis keiner Variablen zugewiesen ist, erhalten Sie diese Warnung. Ich denke, wenn BIO_flush eine echte Funktion war, würde diese Warnung nicht auftreten. Ich denke, um die Warnung zu vermeiden -Wall müssen Sie zuweisen, um eine temporäre –
'BIO_flush' könnte auch ein Makro zu einem Ausdruck mit einem Komma-Operator, wobei die linke Seite des Komma-Operator hat keine Nebenwirkung. Ohne die Definition von 'BIO_flush' zu sehen, ist das alles nur ein Rätsel. – celtschk