查看此页面: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); \
}())
它看起来像是在创建匿名函数或其他东西。这个概念叫什么?我在哪里可以阅读它?
答案 0 :(得分:8)
这是一个C区块。它非常像一个匿名函数(在使用中,而不是在结构中)。您可以在Mike Ash的网站和Apple's documentation中了解更多相关信息。
答案 1 :(得分:3)
这是一个块。它不是标准的C,但是Apple的LLVM编译器支持它(大约在Xcode 3.2 IIRC及更高版本左右)。有关详细信息,请参阅here和here。
对于Objective-C,它不仅仅是 ,而且也是C和C ++编译器的一部分。
答案 2 :(得分:1)
答案 3 :(得分:0)
它是一个C块,它将创建一个无穷大的功能。
请注意,它会创建对系统API的调用来处理这些调用,不了解mac,但对于iOS,运行时系统必须为3.2或更高版本才能支持这些调用。