使用`goto`实现 defer 的 C 语言实现

这是一个自定义的延迟执行相关的头文件defer.h,主要包含以下内容:

主要观点:提供了一套用于延迟执行代码的机制和相关函数。

关键信息

  • 定义了一些用于延迟执行的宏,如n00b_defern00b_defer_return等。
  • 结构体n00b_defer_ll_t用于存储延迟执行的相关信息。
  • 提供了初始化延迟执行列表的宏n00b_enable_defer
  • 可以在if (false)语句块中定义延迟执行的代码块,并通过标签进行跳转。

重要细节

  • N00B_DEFER_INIT是一个初始化值。
  • n00b_token_paste用于字符串拼接。
  • n00b_defer宏在执行时会将当前行的信息存储在一个节点中,并将其添加到延迟执行列表中。
  • n00b_defer_return宏用于设置返回标签,并退出延迟执行。
  • n00b_defer_longjmp宏用于设置长跳转标签,并退出延迟执行。
  • n00b_defer_func_end宏用于在函数结束时检查是否有未处理的延迟执行。
  • 当定义了N00B_USE_INTERNAL_API时,可以使用简化的宏ReturnLongjmpdefer等。
阅读 9
0 条评论