1、什么是Blocks
1-1:Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有自动变量(局部变量)的匿名函数。
顾名思义,所谓匿名函数就是不带有名称的函数。但是在C语言的标准中是不允许存在这样的函数。
1-2:C语言中标准的函数如下:
//带有一个参数,并且返回值为int类型
int func(int count);
//声明了名称为func的函数,下面为调用该函数,但是必须使用该函数的名称func
int result = fun(10);
//同样可以使用函数指针来代替直接调用函数,那么似乎不用知道函数名也能使用该函数。
int result = (*funcptr)(10);
小结:其实在使用 函数指针 也依然需要知道 函数名称。因为函数指针需要函数名来获取:
int (*funcptr)(int) = &func;
int result = (*funcptr)(10);
小结:
通过Blocks,就能狗使用匿名函数,即不带名称的函数。这样就解决了这个问题。