我是一个初学者,正在上课。知识水平=非常低。
错误是预期的标识符或list [0](和list [1]等的l中的'(')。
void hardcode(count, &list[SIZE])
{
struct family list1 = { "test", "case", 'F', '1', '1', '1', 2500, 2000 };
list[0] = list1;
struct family list2 = { "test2", "case2",'M', '4', '4', '2', 5000,1970 };
list[1] = list2;
}
我在main()
中声明了该结构。struct test list[SIZE]
,然后调用了此函数并将其传递给计数器和该结构。
答案 0 :(得分:1)
void hardcode(count, &list[SIZE])
在C中不是有效的声明,其原因有二:
您必须指定参数的类型,例如void hardcode(int count, struct test list[SIZE])
。 (请注意,int
插入count
,struct test
插入list
。)
C没有内置引用;您不能使用&
来描述参数的类型。传递数组时,它将自动转换为指向其第一个元素的指针,并将其用作对该数组的引用。因此,您可以简单地声明上述函数。 (尽管struct test list[SIZE]
声明了一个数组,但当它是一个函数参数时,它会自动调整为具有指向该数组元素的指针的类型。因此,传递数组参数实际上会传递一个指针,并接收一个数组参数实际上接收到一个指针。)