Когда использовать const void *?

У меня есть очень простая тестовая функция, которую я использую, чтобы выяснить, что происходит с квалификатором const.

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

Это выдает мне ошибку с GCC 4.8.3. Но этот компилирует:

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

Таким образом, кажется, что квалификатор const работает, только если я использую аргумент без приведения к другому типу.

Недавно я видел коды, которые использовали

test(const void* vpointer, ...)

По крайней мере для меня, когда я использовал void *, я склоненсимвол * для арифметики указателей в стеках или для трассировки. Как можетconst void * предотвратить функции подпрограммы от изменения данных, при которыхvpointer указывает?

Ответы на вопрос(3)

Ваш ответ на вопрос