Jak dokładnie działa __attribute __ ((konstruktor))?

Wydaje się całkiem jasne, że ma to wszystko poprawić.

Kiedy dokładnie to działa?Dlaczego są dwa nawiasy?Jest__attribute__ funkcja? Makro? Składnia?Czy to działa w C? C ++?Czy funkcja, z którą współpracuje, musi być statyczna?Kiedy robi__attribute__((destructor)) biegać?

Przykład w Objective-C:

__attribute__((constructor))
static void initialize_navigationBarImages() {
  navigationBarImages = [[NSMutableDictionary alloc] init];
}

__attribute__((destructor))
static void destroy_navigationBarImages() {
  [navigationBarImages release];
}

questionAnswers(5)

yourAnswerToTheQuestion