Я знаю, что с точки зрения языка программирования C
main()
является точкой входа в программу.
Но с точки зрения операционной системы это __start
при ctrt0
подпрограммах запуска, которые связаны с программой, которая выполняет любую работу по инициализации, требуемую перед вызовом функции main()
программы (исправьте меня, если ошибаюсь здесь) .
Итак, у нас есть некоторые атрибуты, которые мы можем использовать для наших функций, один из них
Атрибут конструктора, который вызывается перед main (), кто отвечает за вызов этой функции?
__attribute__((construtor))
void foo(void)
{
puts("Constructor called by ... ?\n");
}
и как бы это выглядело в пошаговом стеке вызовов? Спасибо!