恭喜,你发布的帖子
发布于 2015-09-08 13:27:52
20楼
IN或者out类型的无所谓空和不空,因为当你声明一个背景数据块的时候地址已经分配好了,那就是个实参的copy。in_out类型,简单数据类型in_OUT保存实参地址(or指针?),复杂类型不管你空或者不空都是6个字节,保存指向复杂类型数据的指针地址。所以,事实上都是分配好的。但是in_out类型要注意的是,不能空,虽然允许,但是实际上我们在做实际编程的时候不可以空。因为空的话,in_out里面保存的指针是未确定的值,不知道指到哪儿去了。如果你在程序里引用了,那就非常糟糕的事情。
总结下:多重背景数据块,in/out不管是简单或者是复杂类型都无所谓空或者不空,因为是实参的copy,各位难道都没发现in/out在声明的时候可以有个默认值的么?这个默认值就是在你空着的时候(没实参可copy的时候)默认的输入或者输出。而in_OUT则完全不同,它保存的是实参的指针,指针必须有确定的指向不然就是个野指针,在执行的时候不知道会指到什么地方去,这也是不建议编程的时候空的本质原因。
楼主,你的sample时候问题的,你只验证了in/out当然空着也无所谓了。
请填写推广理由:
分享
只看
楼主