.dtors
函数 in和调用 using的函数有什么区别atexit()
?
据我了解,标有((destructor))
属性的函数位于.dtors
段中,并在退出后调用。同样,使用添加的函数atexit(fctName)
被放置在一个数组中,并在正常执行结束后调用。
那么为什么 C++ 在这里提供了两种截然不同的机制呢?有什么不同的事情只能用一个来完成吗?我只能使用动态添加一个函数atexit()
吗?
还有哪些首先被调用,函数中.dtors
或使用添加的函数atexit()
?