Un esempio che posso pensare di se il programma utilizza una rappresentazione big o little endian per i numeri. Credo che questo sarebbe sicuramente contare come un comportamento implementazione definita.
Su alcuni chip, ad esempio alcuni chip ARM, è possibile cambiare modalità in fase di esecuzione in modo che si desideri un compilatore che potrebbe produrre un programma che possa essere eseguito in entrambe le modalità, ovvero che si disponga di un comportamento definito dall'implementazione che potrebbe essere potenzialmente diverso su ogni corsa in base alle impostazioni esterne.
Allo stesso modo penso che si potrebbe scrivere un compilatore che ha prodotto sia a 32 bit ad 64 compilato dello stesso programma - e la modalità è eseguito è stato possibile determinare in fase di esecuzione. Ancora una volta, la documentazione dovrebbe dire che gli int sono stati a 32 bit o 64 bit a seconda di come lo hai eseguito.
A dire il vero non riesco a vedere nessuno fare nessuna di queste cose, ma entrambi sembrano esempi vagamente plausibili di quello che stavi chiedendo e non riesco a capire perché non sarebbero legali secondo lo standard finchè poiché la documentazione ha documentato correttamente la natura del comportamento dipendente dal sistema.
avete un esempio concreto in mente? alternativamente prenderei "implementazione definita" nel senso esattamente quello e se l'implementatore fa una garanzia di consistenza quindi aspettiamo coerenza, altrimenti tutte le scommesse sono spente – msw
GCC usato per essere molto più fico con comportamento indefinito: http: //en.wikipedia .org/wiki/Undefined_behavior # Compiler_easter_eggs – sarnold