【发布时间】:2020-10-18 16:21:57
【问题描述】:
我的问题本质上是这样的:我何时以及为什么应该不传递一个指针。例如,我知道如果我想使用函数在别处修改一些数据,我将需要传递一个指针,这样我才能真正更改那块内存。那么当我需要修改范围外的变量而不是其他情况时只传递指针的标准是什么?那么结构呢,它可能是相当大的内存块?传递一个地址大小的指针(通常是 8 个字节)作为参数还是我的 50 字节结构会更好吗?这还重要吗?
TL;DR 是我在定义函数的参数时需要记住的(除了显而易见的,即我需要对函数做什么)?
【问题讨论】:
-
@Adrian Mole 不,阅读 TL;DR。我知道按引用传递和按值传递之间的区别(该帖子的最佳答案似乎忘记了 C :P)
-
示例:在嵌入式设备上编程,在许多函数中传递具有大数组的结构。您只想在堆栈上分配一次,因此使用指针,否则每个函数调用都会在堆栈上构建一个大数组。
-
数组的大小应该不重要吧?这只是一个指针。这些东西也在堆上,我将同时拥有成千上万个这样的结构。
标签: c function parameters