【发布时间】:2015-03-10 18:04:15
【问题描述】:
我经常使用以下约定来通知客户端代码一个函数需要一个具有定义大小的数组的参数:
/* File foo.h */
int foo (int arg[10]);
我想给客户代码的信息是他们必须提供一个int类型的数组,有10个位置。
我知道这不是很常见,所以我来这里问:我错过了这个约定的任何副作用吗?无论如何有害吗?
谢谢!
【问题讨论】:
-
为什么不使用
int foo (int arg[/*10*/]);?评论维度 -
为什么不使用
int foo (int *arg, int elements);? -
@WeatherVane 它是为人类设计的,目的是让他们知道数组应该总是有 10 个元素。
-
您可以将数组包装到一个结构中并传递一个指向该结构的指针。结构中的数组具有大小信息。
标签: c parameters