Zu Beginn wissen Sie wahrscheinlich, dass constdamit entweder die Daten eines Objekts oder ein Zeiger nicht geändert werden können oder beides.
const Object* obj; // can't change data
Object* const obj; // can't change pointer
const Object* const obj; // can't change data or pointer
Sie können jedoch auch die folgende Syntax verwenden:
Object const *obj; // same as const Object* obj;
Das einzige, was wichtig zu sein scheint, ist, auf welcher Seite des Sterns Sie das constSchlüsselwort setzen. Persönlich ziehe ich es vor, constlinks vom Typ zu setzen, um anzugeben, dass die Daten nicht geändert werden können, da ich finde, dass sie in meiner Denkweise von links nach rechts besser lesbar sind, aber welche Syntax kam zuerst?
Noch wichtiger ist, warum gibt es zwei korrekte Möglichkeiten zur Angabe von constDaten und in welcher Situation würden Sie eine über die andere bevorzugen oder benötigen, wenn überhaupt?
Bearbeiten:
Es klingt also so, als wäre dies eine willkürliche Entscheidung gewesen, als der Standard für die Interpretation von Dingen durch Compiler lange vor meiner Geburt ausgearbeitet wurde. Da constes auf das angewendet wird, was sich links vom Schlüsselwort befindet (standardmäßig?), Vermutlich hat es keinen Schaden angerichtet, "Verknüpfungen" hinzuzufügen , um Schlüsselwörter und Typqualifizierer auf andere Weise anzuwenden, zumindest bis sich die Deklaration um ändert Analyse eines * oder & ...
Dies war auch in C der Fall, nehme ich an?
constnach dem Typ hinzu, z. B.#define MAKE_CONST(T) T conststatt#define MAKE_CONST(T) const T,MAKE_CONST(int *)damit korrekt aufint * conststatt erweitert wirdconst int *.