5 Stimmen

Was bewirkt das Leergießen?

Ich habe den Quellcode gelesen und bin auf Folgendes gestoßen;

struct Cookie *
Curl_cookie_add(struct SessionHandle *data, /* rest of params were here */)
{
/* unrelated things were here */
#ifdef CURL_DISABLE_VERBOSE_STRINGS
  (void)data;
#endif
/* rest of function goes here */
}

Wie Sie sehen können, ist der ungültige, gecastete Zeiger nicht einmal einer Variablen zugewiesen. Ich habe mich gefragt, was der Zweck davon ist.

6voto

Joey Adams Punkte 39825

Dieser Cast unterdrückt eine Compiler-Warnung, die auftreten würde, wenn data nicht verwendet wird.

GCC erzeugt diese Warnung, wenn die -Wunused-parameter Flagge (impliziert durch -Wextra ) aktiviert ist.

0voto

Andrew Punkte 1634

Guter Punkt, Joey - aber die Unterdrückung dieser Warnung unterdrückt sie auch für alle Fälle, in denen der Programmierer versehentlich einen Parameter nicht verwendet hat...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X