2016-05-09 3 views

Antwort

0
  1. static bei Namespacebereich bedeutet „lokal auf diese Übersetzungseinheit“, so dass Sie in jeder Einheit eine neue Kopie des Objekts erhalten werden, die Ihren Header enthält.

  2. Gleiches.

  3. Diese haben standardmäßig eine interne Verknüpfung.

  4. Diese nicht, aber die Sprache hat eine Regel, die besagt, dass Sie diese in einem Programm duplizieren können, solange jede "Kopie" genau gleich aussieht. Das liegt daran, dass Compiler in der Vergangenheit nur Funktionen anzeigen konnten, die in derselben Übersetzungseinheit sichtbar waren. Heutzutage existiert eine Link-Zeit-Optimierung.

+0

Statisch im Namensraumbereich bedeutet "lokal für diese Übersetzungseinheit". Sie erhalten also eine neue Kopie des Objekts in jeder Einheit, die Ihre Kopfzeile enthält. Bedeutet das, dass statische Variable mit gleichem Namen in verschiedenen Dateien unabhängig sind und unterschiedliche Werte in verschiedenen Dateien haben können, weil sie unterschiedliche Speicher haben, da es eine Kopie ist. – Malik

+1

@Malik: Das stimmt. –

Verwandte Themen