关于终止处理程序,
据我了解,当代码中发生不好的事情时,例如当我们没有发现异常时,
调用terminate(),然后调用abort()
set_terminate(my_function)允许我们使用terminate()来调用用户指定的函数my_terminate.
我的问题是:这些函数"活"在哪里它们似乎不是语言的一部分,但它们就好像它们存在于每个单独的cpp文件中,而不必包含任何头文件.
如果存在默认处理函数terminate并且abort您没有自己安装,则它们必须位于编译器提供的运行时库中.
通常,每个程序都链接到运行时库(例如,glibc在Linux下).除其他原因外,这是因为运行时库包含基本事物的"隐藏"代码,例如main在启动时调用函数的代码.