Когда я запускаю следующий код в компиляторе 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");
}
Примечание. В обоих случаях ошибка компиляции не отображается.Программа работает без ошибок.