How does typedef-ing a block works

前端 未结 2 1152
忘掉有多难
忘掉有多难 2021-01-31 07:48

In C/Obj-C, we do a typedef like this typedef int MYINT; which is clear.

Doing typedef for a block -typedef void (^MyBlock) (int a);

No

2条回答
  •  鱼传尺愫
    2021-01-31 08:25

    See Declaring a Block Reference in "Blocks Programming Topics":

    Block variables hold references to blocks. You declare them using syntax similar to that you use to declare a pointer to a function, except that you use ^ instead of *.

    So

     typedef void (^myBlock) (int a);
    

    defines a the type of a block using the same syntax as

     typedef void (*myFunc) (int a);
    

    declares a function pointer.

    See e.g. Understanding typedefs for function pointers in C for more information about function pointers.

提交回复
热议问题