Почему __attribute __ ((конструктор)) не работает в моем коде при использовании clang, но отлично работает при использовании других компиляторов C? - PullRequest
0 голосов
/ 05 июня 2018

Когда я запускаю следующий код в компиляторе mingw64, он работает нормально, и вывод показывает три строки, как и ожидалось.Но когда один и тот же код запускается с помощью clang, конструктор и деструктор не работают должным образом, и в результате получается только одна строка, записанная в main ().Это мой код ниже:

#include <stdio.h>

void before_main(void) __attribute__((constructor));
void after_main (void) __attribute__((destructor));

int main (void)
{
  printf ("\nInside main ()");
}

void before_main(void)
{
  printf ("\nBefore main()");
}

void after_main(void)
{
  printf ("\nAfter main()\n");
}

Примечание. В обоих случаях ошибка компиляции не отображается.Программа работает без ошибок.

...