^{} 在 C 中是什么意思?

What does ^{} mean in C?

我发现了以下代码片段:

void solve_symbols() {
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    getClass = dlsym(RTLD_DEFAULT, "objc_getClass");
    getClassObj = dlsym(RTLD_DEFAULT, "object_getClass");
    registerName = dlsym(RTLD_DEFAULT, "sel_registerName");
    respondsToSelector = dlsym(RTLD_DEFAULT, "class_respondsToSelector");
    msgSend = dlsym(RTLD_DEFAULT, "objc_msgSend");
  });
}

代码可以在这里找到:GitHub:ParasiteLoader/loader.c

^{ getClass = dlsy... }do/mean是什么意思?

它被称为块,是对 C 和 Obj-C 的语言级补充。它是一个像对象一样对待的函数。那些,它是 C 中 closure 概念的实现。增加了更多的函数式编程风格。

您可以在此 article

中找到语法和用法实践建议