您的位置 首页 > 娱乐休闲

C语言的延迟机制

更多互联网新鲜资讯、工作奇淫技巧关注原创【飞鱼在浪屿】(日更新)


defer机制的参考实现的论文概述,已在SAC'21上发表:。它介绍了C语言机制的实现端,该机制和Go编程语言中的defer类似,用于错误处理和延迟清除。这是使用这种功能的简单示例:

guard { void * const p = malloc(25); if (!p) break; defer free(p); void * const q = malloc(25); if (!q) break; defer free(q); if (mtx_lock(&mut)==thrd_error) break; defer mtx_unlock(&mut); // all resources acquired // use p, q, and mut until the end of the block ...

该机制提高了现有语言功能的接近度,可见性,可维护性,健壮性以及清理和错误处理的安全性。本文描述的功能的库实现可通过获得。

该功能正在考虑纳入C标准中,并且已经在上次WG14会议上进行了讨论。主要介绍可以在论文中找到:


GCC的__cleanup__机制

GCC也有个清理资源机制,详见:

#include <; / *演示代码,清理变量。参见: * / / * cleanup函数 *参数为int地址 * / void clean_up (int * final_value ) { printf (“清理\ n ” ); printf (“最终值:%d \ n ” ,* final_value ); } int main (int argc , char ** argv ) { / *连同初始化一起声明cleanup属性 如果没有cleanup属性,则等效 于: int avar = 1; * / int avar __attribute__ ((__cleanup__ (clean_up ))) = 1 ; avar = 5 ; return 0 ; }

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“C语言的延迟机制”边界阅读