//三个结构体//block的结构体定义struct __main_block_impl_0 { struct _block_impl impl;//Block isa ,函数地址等定义 struct __main_block_desc_0 *Desc;//Block size等信息定义};struct _block_impl { void *isa;//所属的类 int Flags; int Reserved; void *FuncPtr;//函数地址};struct __main_block_desc_0 { unsigned long reserved; unsigned long Block_size;} //两个函数//Block信息初始化的函数__main_block_impl_0(void *fp,struct __main_block_desc_0 *desc, int flags=0){ impl.isa = &_NSConcreteStackBlock; impl.Flags = flags; impl.FuncPtr = fp; Desc = desc;}//我们的Block里面的函数,_cself就是调用这个函数的调用者的指针static void __main_block_func_0(struct __main_block_impl_0 *_cself){ printf("Block\n");}