今天用zlib例程里看到下面这句
int buffer_def(void *input, size_t in_data_size, std::vector<uint8_t> &out_data) {
....
}
想着很奇怪,参数里带取地址符是什么意思,然后搜了一下,发现一篇讲得特别仔细的好文:
C语言中取地址符&做函数形参?—— 引用的讨论
这个其实是地址传递方式 不用占用内存,函数里直接可以操作外部的变量,不用再把变量或者指针单独复制进来,节约资源。
今天用zlib例程里看到下面这句
int buffer_def(void *input, size_t in_data_size, std::vector<uint8_t> &out_data) {
....
}
想着很奇怪,参数里带取地址符是什么意思,然后搜了一下,发现一篇讲得特别仔细的好文:
C语言中取地址符&做函数形参?—— 引用的讨论
这个其实是地址传递方式 不用占用内存,函数里直接可以操作外部的变量,不用再把变量或者指针单独复制进来,节约资源。