作者aguai (阿怪)
看板Programming
标题Re: [请益] 指标的问题
时间Sat Dec 8 07:33:44 2007
※ 引述《LPH66 (IWH68S0XZ8M89)》之铭言:
: ※ 引述《readonly (唯读)》之铭言:
: : 不过如果是只能看到function prototype,例如用别人的library,
: : void f( object * p );
: : object * p;
: : f( p );
: : 一般人应该会这样写,这不就危险了?
: 所以这个f的文件里就要说明他收的p是个怎样的参数
: 看要是个合法变数的位址或是阵列等等
: 然後要指示说这必须要用如 f(&var); 这样传进去 (如果要传个变数的位址进去的话)
: : ※
: : 只是有点好奇,这样的写法要用在什麽情况?
: C语言中当该参数是输出用的时候或是可能改动到该参数时
: (有时会被特称(且误称)为call by adderss)
: 也许是因为回传太多东西 也许是因为回传值是个阵列或是个还满大的东西
: 而必须要把其中一个或多个放到参数列去
: 例如<time.h>中有个函式叫gettime
: 它是这样的prototype:
: void gettime(struct time *);
: 它的功能是回传(以struct time纪录的)目前时间
: 那因为这个参数是输出用 所以就要传进变数的位址进去
: 例如要用
: struct time t;
: gettime(&t);
: 这样去使用它
小小补充一下一点点心得
这样说好了
指标有点「比照办理」的意思在内
好比说
正妹 *p
意味着 在&p的位置有正妹一枚
至於要如何「办理」该枚正妹
端看
1.正妹有public甚麽member 以及你有没有 "人:女:正 某正妹 的spec"(烟+远目)
2.你是不是正妹的friend
等等
但是宣告以办理正妹的 method 去 &p (传回一个你"以为"是正妹所在位置)
迳行「办理」该位置所存在的人事物
很有可能会要到奇怪的疤面煞星的电话...
这可能会造成不可逆料的结局...
万万小心...
--
闲言碎语风凉话
将睡未醒事後菸
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 86.137.1.254
1F:推 sunneo:囧rz220.132.228.138 12/08 17:39