Was ist ein kurzes illustratives C-Programm, das den Unterschied zwischen volatilem und nichtflüchtigem Disassemblieren zeigt?Beispiel C-Code, der in Disassembly flüchtige zeigt?
dh
int main()
{
volatile int x;
???
}
vs
int main()
{
int x;
???
}
Was können wir beide ???
mit so ersetzen, dass der generierte Code anders ist?
Ich habe es gerade getestet und Sie haben Recht. Der Speicher 'x = 0' wird in der nichtflüchtigen Version in gcc-O2 eliminiert, während dies bei der volatilen Version nicht der Fall ist. –
"Sie haben Recht" - Ich habe immer Recht. (JK): P Gern geschehen. –
Dies ist ein "voreiliger Verallgemeinerung" Trugschluss von den spezifischen zu allgemein. :) –