Quando usar const void *?
Eu tenho essa função de teste muito simples que estou usando para descobrir o que está acontecendo com o qualificador const.
int test(const int* dummy)
{
*dummy = 1;
return 0;
}
Este me lança um erro com o GCC 4.8.3. No entanto, este compila:
int test(const int* dummy)
{
*(char*)dummy = 1;
return 0;
}
Portanto, parece que o qualificador const funciona apenas se eu usar o argumento sem converter para outro tipo.
Recentemente eu vi códigos que usavam
test(const void* vpointer, ...)
Pelo menos para mim, quando usei void *, tenho a tendência deCaracteres* para aritmética de ponteiro em pilhas ou para rastreamento. Como podeconst void * impedir que as funções da sub-rotina modifiquem os dados nos quaisvpointer está apontando?