摘要: 在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义: int (^Multiply)(int, int) = ^(int num1, int num2) {return num1 * num2;};定义了一个Multiply的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现,注意{}blocks体里的;。Blocks可以访问局部变量,但是不能 阅读全文
posted @ 2012-01-04 21:52 Gang.Wang 阅读(4653) 评论(0) 推荐(1) 编辑
摘要: 获取省略号指定的参数在函数体中声明一个va_list,然后用va_start函数来获取参数列表中的参数,使用完毕后调用va_end()结束。像这段代码:voidTestFun(char* pszDest, int DestLen, const char* pszFormat, ...){va_listargs;va_start(args,pszFormat);_vsnprintf(pszDest, DestLen, pszFormat,args);va_end(args);}4.va_start使argp指向第一个可选参数。va_arg返回参数列表中的当前参数并使argp指向参数列表中的下一个 阅读全文
posted @ 2012-01-04 21:00 Gang.Wang 阅读(500) 评论(0) 推荐(0) 编辑