这一行在这里发生了什么?

时间:2018-01-28 15:15:43

标签: c

#include <stdio.h>

void main()
{
    static int array[5] = { 200, 400, 600, 800, 1000 };
    int sum;

    int addnum(int *ptr); // what happened here ?

    sum = addnum(array);
    printf("Sum of all array elements = %5d\n", sum);
}
int addnum(int *ptr)
{
    int index, total = 0;
    for (index = 0; index < 5; index++)
    {
        total += *(ptr + index);
    }
    return(total);
}
  

int addnum(int * ptr); //这段代码究竟是什么意思?

只是概念的主题或名称就可以了。非常感谢提前。

1 个答案:

答案 0 :(得分:1)

  

int addnum(int * ptr); //这里发生了什么?

它被称为forward declaration,允许编译器知道稍后将定义此类函数。

在C中,有可能(虽然不明智)实现一对相互递归的函数:

int first(int x) {
        if (x == 0)
            return 1;
        else
            return second(x-1); // forward reference to second
}

int second(int x) {
    if (x == 0)
        return 0;
    else
        return first(x-1); // backward reference to first
}