volatile const int MAX[2]={0x3c00,0x3C01}; und const int MAX[2]={0x3c00,0x3C01};
-
Hi,
was ist der Unterschied im Speicher zw.
volatile const int MAX[2]={0x3c00,0x3C01};
und
const int MAX[2]={0x3c00,0x3C01};?
Viele Grüße
Puff123
-
Im Speicher weniger, eher was der Compiler macht, wenn du den Wert ausliest.
Bei 2. kann der Compiler davon ausgehen, dass sich der Wert niemals ändert.
Wenn er den Quelltext umsetzt in Prozessoranweisungen braucht er also nicht jedesmal im Speicher schauen, wie der Wert aussieht, sondern kann den Wert z.B. in einem Prozessorregister behalten. Oder er schreibt die 0x3c00 einfach so hin.Bei der volatile Version wird gesagt, dass jedesmal der Wert ausgelesen werden muss. Denn auch wenn er für das C++ Programm const ist, kann es sein, dass die Hardware oder ein Treiber etc. diesen Wert verändern.