预处理器宏在表达式的开头使用插入符号^符号

pyr*_*ion 10 syntax objective-c caret objective-c-blocks

查看此页面:http://www.mikeash.com/pyblog/friday-qa-2010-12-31-c-macro-tips-and-tricks.html

我发现这段代码带有^{... }()语法,插入/括号有什么作用?

#define MAX(x, y) (^{ \
    int my_localx = (x); \
    int my_localy = (y); \
    return my_localx > my_localy ? (my_localx) : (my_localy); \
}())
Run Code Online (Sandbox Code Playgroud)

看起来它创建了一个匿名函数或其他东西.这个概念叫什么?我在哪里可以阅读它?

Caj*_*uke 8

这是一个C块.它非常像一个匿名函数(在使用中,而不是在结构中).您可以在Mike Ash的网站和Apple的文档中阅读有关它们的更多信息.