Voici le contexte du code:Que signifie l'expression "BIO * client = (BIO *) arg"?
void THREAD_CC server_thread(void *arg)
{
BIO *client = (BIO *)arg;
...
}
Est-ce que l'expression (BIO *)arg
transformer le pointeur de vide arg
dans un pointeur qui pointe vers BIO? Je ne suis pas sûr si j'ai bien compris ou non.
Toute aide serait grandement appréciée!
Z.Zen
Oui. C'est la seule bonne réponse possible. Un tel casting ne "transforme" rien, il demande juste au compilateur de se taire. – sharptooth
Non, cela * transforme * le pointeur. Si un pointeur «void *» et un pointeur «BIO *» ont des représentations différentes, cela changera le premier en dernier. Cela équivaut à lancer 'int' à' long' - bien sûr, sur * certains * systèmes cela peut être un non-op, mais pas en général. – caf
@caf ?? Que voulez-vous dire? que la "nature" d'un pointeur peut changer selon la pointee? – ShinTakezou