A propos des ++ et des --, le truc qui est interdit c'est d'avoir plusieurs fois dans la meme expression la variable qui est incrementee. Par exemple "toto += ++toto" ou "func(toto, ++toto)". Ce sont des cas indetermines qui donneront des resultats differents suivant le compilo et l'architecture.
De toute facon il faut eviter des faire 15 trucs sur la meme ligne. C'est dangereux, c'est difficile a lire, et ca complique le debug.