Link (./1624) :
^^Évidemment, un cast sur un opérateur unaire, ça me paraît bizarre.
Et pourquoi ?
À la réflexion, c'est parce que pour moi le résultat d'un cast est une rvalue.
En ajoutant des parenthèses pour clarifier, on a alors deux cas:
*
(unsigned char)(n++) qui n'a aucun effet sur l'opérateur lui-même, seulement la valeur retournée (normal)
*
((unsigned char)n)++ qui selon moi ne devrait pas compiler.
Note: Par contre, "opérateur unaire" n'était pas forcément le bon terme, vu que je parlais ici uniquement des pre/post inc/decrémentation. Naturellement, un '-' unaire ou une '*' n'ont pas ce problème.