如何解决在Windows C库中使用__try / __ finally扩展是否有任何不利之处?
我正在用C编写Windows特定的库,并且正在考虑使用try-finally
statements(Microsoft对C语言的扩展)来简化我的代码,即使在意外失败的情况下也可以清理资源。 Cleaning up resources中给出了一个示例。
我也不关心操作系统的可移植性,也不关心编译器的可移植性,the current version of Clang appears to support it on Windows。
到目前为止,我确定的唯一负面后果是对标准C ++异常处理的潜在干扰。有关详细说明,请参见文档页面Handle structured exceptions in C++和/EH (Exception handling model)。对于.NET语言来说,这种情况似乎是安全的,但是我担心C ++用户可能没有设置正确的编译器选项,并且可能会遇到诸如this SO answer中所述的不便之处。
这是一个有效的问题吗?重新考虑使用try-finally
语句是否还有其他缺点或原因?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。