Wann soll const void * verwendet werden?

Ich habe diese sehr einfache Testfunktion, mit der ich herausfinde, was mit dem const-Qualifier los ist.

int test(const int* dummy)
{
   *dummy = 1;
   return 0;
}

Dieser wirft mir einen Fehler mit GCC 4.8.3 zu. Doch dieser kompiliert:

int test(const int* dummy)
{
   *(char*)dummy = 1;
   return 0;
}

So scheint es, als ob das const-Qualifikationsmerkmal nur funktioniert, wenn ich das Argument verwende, ohne es in einen anderen Typ umzuwandeln.

or kurzem habe ich Codes gesehen, die @ verwendet

test(const void* vpointer, ...)

Zumindest für mich, wenn ich void * verwendet habe, neige ich dazu, es auf @ zu werfeverkohlen für Zeigerarithmetik in Stapeln oder zum Verfolgen. Wie kannconst void * verhindert, dass Unterprogrammfunktionen die Daten ändern, bei denen vpointer zeigt auf?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage