Jaka jest umowa z przypisaniem zmiennej bez znaku do podpisanej wartości?

Ten kod, na który patrzę, ma wiele miejsc, w których widzę takie rzeczy:

char *functionName(char *passedVariable)
{
    unsigned char *newVariable = (char* ) passedVariable;

Dlaczego tak się dzieje? Zawsze staram się być konsekwentny w używaniu podpisanych / niepodpisanych, ponieważ wiem, że przełączanie się między nimi może powodować problemy, ale ten programista wydaje się nie przejmować.

questionAnswers(5)

yourAnswerToTheQuestion