block总结我的

1)

struct Block_descriptor {
    unsigned long int reserved;
    unsigned long int size;
    void (*copy)(void *dst, void *src);
    void (*dispose)(void *);
};


struct Block_layout {
    void *isa;
    int flags;
    int reserved; 
    void (*invoke)(void *, ...);
    struct Block_descriptor *descriptor;
    /* Imported variables. */
};

block本身是一个结构体;结构体的核心是代码功能块和环境变量;

2)__block是一个结构体;

3)重点关注的是block对环境变量的引用和管理。

4)block作为一个对象,copy和其它操作对环境变量的影响;在copy时对环境变量的内存管理。(与具有内存管理功能的函数很类似)

5)编译器实现全部隐含功能。
原文地址:https://www.cnblogs.com/feng9exe/p/7486140.html