gpt4 book ai didi

c - 在 C 中将数组作为函数参数传递哪种方式更好?

转载 作者:行者123 更新时间:2023-12-03 18:36:31 26 4
gpt4 key购买 nike

有 3 种方法可以将数组作为函数参数传递。

  • 形式参数为 指针 ,例如 void myFunction(int *param) {}
  • 形式参数为 大小数组 ,例如 void myFunction(int param[10]) {}
  • 形式参数为 一个未定大小的数组 ,例如 void myFunction(int param[]) {}

  • 哪种方式在效率和可读性方面更好?

    最佳答案

    Which way is better to pass arrays as function arguments in C?



    我要去 Door #4 。接收函数需要知道大小。
    void myFunction(size_t array_element_count, int *param);

    或者,代码可以使用终止哨兵,但没有特殊的“I-am-not-an-int”值。

    就以下而言,它们发出相同的代码。这是一个风格问题。因此,请遵循小组的风格指南。对我来说,我喜欢 size_t array_element_count, int param[array_element_count] 作为对代码意图最有用的信息。
    void myFunction(size_t array_element_count, int *param);
    void myFunction(size_t array_element_count, int param[array_element_count]);
    void myFunction(size_t array_element_count, int param[]);

    在风格方面, f(size, ptr)f(ptr, size) ,我记得阅读下一个 C rev 促进 f(size, ptr) 。 IAC,具有更复杂的数组和 VLA 支持,以下内容很有用:
    foo(size_t row, size_t col, matrix[row][col]);

    关于c - 在 C 中将数组作为函数参数传递哪种方式更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61777092/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com