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.