c - 找不到标识符?

标签 c function-prototypes

在使用了两年 C# 之后,我尝试了 C,但遇到了一些“菜鸟”错误。

我试图用递归来反转一个数组,但出现了这个错误:

error C3861: 'Rekurzija' indentifer not found

这是我的代码:

#include "stdafx.h"
#include "stdio.h"

int main()
{
    int niz[] = {1,2,3,4,5,6};
    int duzina = sizeof(niz)/sizeof(int);
    printf("%s",niz[Rekurzija(duzina)]);
    getchar();
}

int Rekurzija(int niz)
{
    int i = sizeof(niz)/sizeof(int);
    while(i!=0)
        return Rekurzija(i-1);
}

最佳答案

在 C 语言中,一切都必须在使用前声明。所以你必须在 main 之前添加 Rekurzija 的声明:

int Rekurzija(int);

这只是告诉编译器,当它稍后看到 Rekurzija 调用时,这是一个接受 int 并返回 int 的函数调用。这就是处理调用所需的全部,定义可以在其他地方,例如在您的情况下位于 main 下方,甚至可以在另一个文件中,这很常见(.h 文件中的声明和 .c 文件中的定义) .

关于c - 找不到标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129085/

相关文章:

c - C99 中那些奇怪的数组大小 [*] 和 [static] 是什么?

控制管道 StdIn 和 StdOut

iphone - 如何使用C语言向数据库中插入数据?

c - 使用8051串行直流电机控制

C: 在 Linux 上可靠地导致 `double free or corruption`

c++ - foo(void) 与 foo(void *)

c - AIX 中的 memmove_overlay 命令是什么?

c - C 函数原型(prototype)返回二维数组

c - 函数声明与函数定义

c - 在 C 中是否可以一致地引用前向声明和非前向声明的结构?