声明函数指针变量
函数返回值类型 (指针变量名) ( ); //不需要列举形参,只是定义了一个可以指向函数的指针,不关心指向什么函数以及有什么参数
指针变量名=函数名;
(指针变量名)(实参列表);//调用函数
eg:
int max(int* data, int len){ ……}
int (fnPt) ( ) = max;
(fnPt)( data , 5);
fnPt = avg;
(*fnPt)( );
块,Block
定义块语法:
^ [块返回值类型,可省略,一般不写] (形参列表){ …….}
eg: ^( ){….}
定义块变量:
块返回值类型 (^块变量名) (形参列表);
eg: void (^nani)( );
块变量赋值:
块变量名 = 块语法;
eg: nani = ^( ){…..}
调用块:
块变量名(参数列表);
eg: nani( );
定义块类型:
定义快变量前加上typedef即可,
typedef 块返回值类型 (^块变量类型) (形参列表);
eg:
type void (^FKPrint) (int);
FKPrint woca = ^(int){….}
FKPrint wokao= ^(int){….}
woca(2); wokao(3);
块与局部变量:
在定义块的时候捕获变量值,默认不可修改,若要修改在变量前加上__block修饰变量
网友评论