Non sono sicuro se la dichiarazione di sotto è ben definito dalla norma C o menoÈ * p ++ + = 2 ben definito?
*p1++ += 2;
o altra dichiarazione simile:
*E1++ <operator>= E2
Dalla serie C in merito a post-incremento:
Il risultato dell'operatore postfix ++ è il valore dell'operando. Dopo aver ottenuto il risultato, il valore dell'operando viene incrementato. (ovvero, viene aggiunto il valore 1 del tipo appropriato.) Consultare le discussioni degli operatori additivi e l'assegnazione composta per le informazioni su vincoli, tipi e conversioni e gli effetti delle operazioni sui puntatori. L'effetto collaterale dell'aggiornamento del valore memorizzato dell'operando deve avvenire tra la sequenza precedente e quella successiva .
E circa coumpund assegnazione:
Un'assegnazione composto della op modulo E1 = E2 differisce dalla semplice espressione assegnamento E1 = E1 op (E2) soltanto dal fatto che l'Ivalue E1 è valutato solo una volta.
Beh, cosa ha scatenato il tuo sospetto che potrebbe essere indefinito? Per me, per esempio, tutto sembra a posto, il che mi rende difficile persino iniziare a rispondere alla domanda: non so su cosa concentrarmi. – AnT
Non scrivere i codici in un progetto come questo, eccetto per la ricerca su di esso. – wshcdr
Scrivere questo tipo di codice illeggibile solo per aggiungere altro codice su una riga è una cattiva programmazione. :) – Almo