^ {}在C中意味着什么?

时间:2016-10-17 21:08:09

标签: c objective-c-blocks llvm-clang

我遇到了以下代码段:

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... }做什么/意味着什么?

1 个答案:

答案 0 :(得分:0)

它被称为块,它是C和Obj-C的语言级别添加。它是一个像对象一样对待的函数。那些,它是在C.中实现closure概念。添加更多功能性编程风格。

您可以在此article

中找到语法和使用惯例建议