参数传递方向

来源:互联网 发布:我的淘宝网购物车 编辑:程序博客网 时间:2024/04/27 17:05

四、参数传递方向

  在C语言的函数声明中,尤其当参数为指针的时候,你是看不出它传递方向的。比如:
void fun(char * p1, int * p2); 请问,p1、p2 哪个是入参?哪个是出参?甚或都是入参或都是出参?由于牵扯到内存分配和释放等问题,COM 需要明确标注参数方向。以后我们写程序,就类似下面的样子:

      HRESULT Add([in] long n1, [in] long n2, [out] long *pnSum);  // IDL文件(注2)      STDMETHOD(Add)(/*[in]*/ long n1, /*[in]*/ long n2, /*[out]*/ long *pnSum);  // .h文件
如果参数是动态分配的内存指针,那么遵守如下的规定:
 方向申请人释放人提示[in]调用者调用者组件接收指针后,不能重新分配内存[out]组件调用者组件返回指针后,调用者“爱咋咋地”(注3)[in,out]调用者调用者组件可以重新分配内存
原创粉丝点击