gpt4 book ai didi

c++ - abort() 和 terminate() "live"在哪里?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:07 25 4
gpt4 key购买 nike

关于终止处理程序,

据我了解,当代码中出现错误时,例如当我们没有捕获到异常时,

terminate() 被调用,后者又调用 abort()

set_terminate(my_function) 允许我们获取 terminate() 以调用用户指定的函数 my_terminate。

我的问题是:这些函数“存在”在哪里,它们似乎不是语言的一部分,但就像它们存在于每个单独的 cpp 文件中一样工作,而无需包含任何头文件。

最佳答案

如果 terminateabort 的默认处理函数不是您自己安装的,则它们必须位于编译器提供的运行时库中。

通常,每个程序都链接到运行时库(例如 Linux 下的 glibc)。除其他原因外,这是因为运行时库包含基本事物的“隐藏”代码,例如在启动时调用 main 函数的代码。

关于c++ - abort() 和 terminate() "live"在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2705439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com