RAII(资源获取即初始化)是 C++ 中的一种模式,资源的清理与对象的生命周期自动绑定。C 语言没有析构函数来自动执行此操作,因此需要手动模拟类似的清理保证,例如使用 goto 语句跳转到函数末尾的单一清理部分,释放所有获取的资源。一些编译器还支持非标准的 __attribute__((cleanup)) 扩展,当变量离开作用域时自动调用指定函数。这两种方法都旨在降低在函数的多个可能退出路径之一中忘记释放资源的风险。
goto
__attribute__((cleanup))
用自己的话写下这一站的结论。