next up previous contents
Next: Felder Up: Lebensdauer und Lage der Previous: static

const

Variablen, die const erklärt werden, dürfen nach der Initialisierung nicht mehr verändert werden. Dies kann dazu dienen, in einen Namensraum Konstanten einzuführen. Der Compiler kann diese u.U. bereits zur Compilezeit wegoptimieren. Diese Technik ist der unter C weitverbreiteten Gewohnheit, solche Ersetzungen durch den Präprozessor machen zu lassen, vorzuziehen, da der Präprozessor keine Typenüberprüfung vornehmen kann. Die konsequente Benutzung von const erlaubt dem Compiler weitere Optimierungen, so daß man Variablen und Funktionsargumente sorgfältig daraufhin überprüfen sollte, ob es möglich, sie als const zu erklären.

 const int    Size = 100; 
 const double Pi   = 3.1415926;   // When including cmath on can
                                  // use the predifined constant M_PI

volatile dient dazu, den Compiler darauf hinzuweisen, daß eine Variable ihren Wert ändern kann, auch ohne daß eine Zuweisung oder ein anderweitiger Programmzugriff erfolgt ist. Dies Verhalten ist typisch für hardware-Register, die im Adreßraum des Programmes liegen. Der Compiler muß in diesem Fall von zu agressiver Optimerung abgehalten werden.



© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002