【发布时间】:2018-01-18 10:30:20
【问题描述】:
我在 C 中有一个函数,它接受一个结构数组作为参数:
int load_ini_parms(char * ini_file,
struct test_object s[],
int num,
struct lwm2m_object * l)
我的问题是,将指针传递给结构数组会更好吗?有什么优点或缺点?
【问题讨论】:
-
通过使用
struct test_object s[]作为参数,编译器实际上将其视为struct test_object *s。所以你已经在传递一个指针(指向第一个元素)。 -
从技术上讲,将数组作为参数传递等于传递指向其第一个元素的指针,因此,如果将指针传递给数组,则只需将指针传递给
struct指针,即在这里有时可能有用但没必要 -
使用 C99+ 和 vla 参数。
-
@artic sol 不清楚你在问什么。
-
@AnttiHaapala 注意 VLA 在 C11 中是可选的
标签: c struct pass-by-reference pass-by-value