在C中,缺少“主要进程结束”之间的链接,以“调用Atexit注册的任何功能”

StackOverflow https://stackoverflow.com/questions/1799306

  •  22-09-2019
  •  | 
  •  

在C中,当主要过程结束时 - 如何调用注册的任何功能 atexit()?

我了解如何 atexit() 作品,但我不理解“主要过程结束”和“调用任何注册的功能之间的通信 atexit()“我有点多余。

谢谢!

有帮助吗?

解决方案

C标准 PDF链接](5.1.2.2.3):

从初始电话回到 main 功能等同于调用 exit 功能,返回的值 main 作为其论点的作用;到达 } 终止主函数将返回一个值 0.

这是 exit 调用注册的功能 atexit (有关所有内容的描述,请参见标准中的7.20.4.3 exit 做)。

其他提示

在C中, main() 函数实际上是由某些其他函数调用的,该功能是在运行时内置的。此功能,之后 main() 功能结束,做更多的事情要清理。其中之一是调用已注册的任何功能 atexit(). 。此功能实际上存储了某种静态函数指针列表,该函数将在运行时调用 main().

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top