Casting duas vezes na mesma linha

Eu vi esse código no projeto.

bO tipo devoid*:

void *b = ...;
int a = (int) (unsigned long) b;

Esta linha é sem sentido? Quero dizer, é o mesmo quea = (int) b em todos os casos?