C++ — Änderungen 11306 → 11307

Zeile 45: Zeile 45:
 
G++ erstellt eine "ctors*" Sektion, welche ein Array aus Funktionszeigern ist. Diese Funktionszeiger zeigen jeweils auf einen Konstruktor. Man muss nun nur dieses Array durchgehen und alle Funktionen aufrufen und schon hat man alle globalen/statischen Objekte initialisiert.
 
G++ erstellt eine "ctors*" Sektion, welche ein Array aus Funktionszeigern ist. Diese Funktionszeiger zeigen jeweils auf einen Konstruktor. Man muss nun nur dieses Array durchgehen und alle Funktionen aufrufen und schon hat man alle globalen/statischen Objekte initialisiert.
  
−
In neueren Version von GCC wurde die Sektion .ctors* in .init_array umbenannt und muss im gegebenenfalls im Linkerscript geändert werden.
+
In neueren Version von GCC wurde die Sektion .ctors* in .init_array umbenannt und muss gegebenenfalls im Linkerscript geändert werden.
  
 
<cpp>
 
<cpp>
Zeile 71: Zeile 71:
 
G++ erstellt eine "dtors*" Sektion, analog zur "ctors*" Sektion und speicher dort wiederum ein Array aus Funktionszeigern. Diesmal zeigen diese Funktionszeiger aber auf Destruktoren.
 
G++ erstellt eine "dtors*" Sektion, analog zur "ctors*" Sektion und speicher dort wiederum ein Array aus Funktionszeigern. Diesmal zeigen diese Funktionszeiger aber auf Destruktoren.
  
−
In neueren Version von GCC wurde die Sektion .dtors* in .fini_array umbenannt und muss im gegebenenfalls im Linkerscript geändert werden.
+
In neueren Version von GCC wurde die Sektion .dtors* in .fini_array umbenannt und muss gegebenenfalls im Linkerscript geändert werden.
  
 
==== Destruktoren (mit --enable-__cxa_atexit oder mit -fuse-cxa-atexit) ====
 
==== Destruktoren (mit --enable-__cxa_atexit oder mit -fuse-cxa-atexit) ====