Heim >Backend-Entwicklung >C++ >Warum haben die „const'-Objekte von C eine interne Verknüpfung, während dies bei C nicht der Fall ist?

Warum haben die „const'-Objekte von C eine interne Verknüpfung, während dies bei C nicht der Fall ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-01 01:48:141006Durchsuche

Why Do C  's `const` Objects Have Internal Linkage While C's Don't?

Interne Verknüpfung durch Const in C impliziert, anders als in C

In C haben const-Objekte, die in einem Namespace deklariert werden, eine interne Verknüpfung, eine Abweichung von Cs Ansatz. Dieses Verhalten ergibt sich aus der potenziellen Verwendung von Const-Objekten als Kompilierzeitkonstanten in C.

Anhang C des C 11-Standards (C.1.2) erläutert die Gründe für diese Änderung. Die Regel ermutigt Programmierer, const-Objekte explizit zu initialisieren, was die Konsistenz fördert und deren Einbindung in Header-Dateien ermöglicht, die von Kompilierungseinheiten gemeinsam genutzt werden.

Betrachten Sie beispielsweise das folgende Beispiel:

const int var_a = 1;
int var_b = 1;

Dies kompilieren Code mit g -c test.cpp exportiert nur die Variable var_b. Dies liegt daran, dass const-Variablen im Gegensatz zu C nicht extern verfügbar gemacht werden.

Das obige ist der detaillierte Inhalt vonWarum haben die „const'-Objekte von C eine interne Verknüpfung, während dies bei C nicht der Fall ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn