BUIW 范例中常用的goto跳转函数模式
2011-05-18 14:47
197 查看
goto语句已经很少在C语言中使用了,然而为了书写简便,BUIW应用使用了具有ERR_TRY()和ERR_CHECK_PTR()的函数模式,此模式隐含地使用了goto语句,此函数模式特点如下:
1. 返回值为0时表示成功,其它为失败情况的枚举值
2. 需要在函数内部定义临时变量int nErr;
3. 具有ERR_CATCH: 的跳转标签
4. ERR_TRY()包含的函数的返回值同样要求:返回值为0时是成功,其它为失败情况的枚举值
5. 指针检查使用ERR_CHECK_PTR(pBuf);
函数框架如下:
ERR_TRY()和ERR_CHECK_PTR()的宏定义如下:
1. 返回值为0时表示成功,其它为失败情况的枚举值
2. 需要在函数内部定义临时变量int nErr;
3. 具有ERR_CATCH: 的跳转标签
4. ERR_TRY()包含的函数的返回值同样要求:返回值为0时是成功,其它为失败情况的枚举值
5. 指针检查使用ERR_CHECK_PTR(pBuf);
函数框架如下:
// return: // 0 – SUCCESS // other - fail int MyFunction (MyApp *pMe) { int nErr; char *pBuf; ERR_TRY( ISHELL_CreateInstance( pMe->pIShell, AEECLSID_FILEMGR, (void **)&pMe->m_pIFileMgr) ); pBuf = MALLOC(MY_BUF_SIZE); ERR_CHECK_PTR(pBuf); ERR_CATCH: return nErr; }
ERR_TRY()和ERR_CHECK_PTR()的宏定义如下:
#define ERR_CATCH __errcatch #define ERR_TRY(x) do { nErr = (x); if (AEE_SUCCESS != nErr) goto ERR_CATCH; } while(0) #define ERR_THROW(e) do { nErr = (e); goto ERR_CATCH; } while(0) #define ERR_CHECK_PTR(p) if (NULL == p) ERR_THROW(AEE_EFAILED);
相关文章推荐
- jquery刷新页面 页面跳转 js常用函数
- jquery刷新页面 页面跳转 js常用函数/table边框边显示
- 转:jquery刷新页面 页面跳转 js常用函数
- JQuery刷新页面 页面跳转 JS常用函数
- 初涉JavaScript模式 (9) : 函数 【常用方式】
- 区分Activity的四种加载模式(Activity跳转管理) 和 Intent的常用Flag参数
- jquery刷新页面 页面跳转 js常用函数
- mysql常用基础操作语法(十二)~~常用数值函数【命令行模式】
- 2012.12.06 jquery刷新页面 页面跳转 js常用函数
- 常用的页面跳转函数
- 小结:PHP 正则表达式常用函数--PCRE模式篇
- SOCKET常用的函数和开发模式(1)
- html页面跳转常用函数-返回
- 区分Activity的四种加载模式(Activity跳转管理) 和 Intent的常用Flag参数
- jquery刷新页面 页面跳转 js常用函数
- jquery刷新页面 页面跳转 js常用函数
- jquery刷新页面 页面跳转 js常用函数
- Activity的四种加载模式(Activity跳转管理) 和 Intent的常用Flag参数
- 关于Linux常用函数alarm的范例调试。。。