iCAx开思工具箱

标题: ug函数参数传递问题。 [打印本页]

作者: xskun    时间: 2004-3-20 16:10
标题: ug函数参数传递问题。
以下几个函数的参数,object_id究竟如何传递才正确?
一、tag_t  UG_func1(void);    //函数原型
      tag_t object_id;    //变量定义     object_id为输出变量
      .........
      object_id=UG_func();     //函数调用   
  
二、 UG_func2(...,tag_t *object_id);    //函数原型
      tag_t object_id;    //参变量定义     object_id为输入变量
      .........
      UG_func(...[$object_id)]     //函数调用   
  
函数一输出的object_id,可否为函数二的输入,如果不行,怎么改?(函数原型不能变)
  
三、 UG_func3(...,tag_t **object_id);    //函数原型
      tag_t *object_id;    //参变量定义     object_id为输出变量
      .........
      UG_func(...[$object_id)]     //函数调用   
  
函数二不变,函数一换为函数三呢?
谢谢!
作者: pinkwall    时间: 2004-3-21 03:16
看的我都暈了~~~
作者: mazhiguo    时间: 2004-3-21 19:36
楼主:
       你只是部分程序,大家可能一时很难明白你真正的意图。
我这样想得:
      1.你把定义函数1的返回值时赋值给第一次申明的变量object_id,object_id
是全局变量还是局部变量,我自己认为应该是全局变量的。
      2.全局变量的话,在函数2应用时,无需重新定义,在函数内部时,重新定义的相同名字的变量与全局变量不相关的!
      3.至于函数3对它的调用也是如此了!
  
      可能有不对之处,相互交流、相互学习吧!
  
      
作者: goodluckwu    时间: 2004-3-22 11:07
[quote][b]xskun wrote:[/b]
以下几个函数的参数,object_id究竟如何传递才正确?  
  一、tag_t  UG_func1(void);    //函数原型  
        tag_t object_id;    //变量定义     object_id为输出变量  
        .........  
        object_id=UG_func();     //函数调用   
  
  二、 UG_func2(...,tag_t *object_id);    //函数原型  
        tag_t object_id;    //参变量定义     object_id为输入变量  
        .........  
        UG_func(...[$object_id)]     //函数调用   
  
  函数一输出的object_id,可否为函数二的输入,如果不行,怎么改?(函数原型不能变)  
  
  三、 UG_func3(...,tag_t **object_id);    //函数原型  
        tag_t *object_id;    //参变量定义     object_id为输出变量  
        .........  
        UG_func(...[$object_id)]     //函数调用   
  
  函数二不变,函数一换为函数三呢?  
  谢谢! [/quote]
  
不是很明白楼主的意思,我想楼主是不是可以这么调用:
  
{
    tag_t obj;
    ...
    obj=UG_func1();
    UG_func2(..., [$obj)]
}
另外,我想提醒楼主(可能不必要),UG中tag_t就是一个unsinged int, 因此
tag_t a = ...
tag_t b=a;
则b就有了和a同样的身份。
如果你想不明白应该怎么调用,就把它想象成int , 只要能够正确的传回他的值就应该问题不大。
以上是自己的理解,如有偏颇,各位高手不吝赐教阿。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3