调用函数main()中的未定义函数

时间:2010-08-11 18:09:49

标签: c

每当我使用在main函数中调用的函数时,它都会出现此错误:在函数main()中调用未定义的函数 我正在使用turbo c ++编译器4.5版和windows vista终极服务包2 你能告诉我们使用哪个头文件或其他东西。我是C语言的初学者。

产生此错误的示例:

#include<stdio.h> 

main( ) 
{ 
  int i ; 
  int marks[ ] = { 1, 2, 3, 4, 5, 6, 7 } ; 

  for ( i = 0 ; i <= 6 ; i++ ) display ( marks[i] ) ; 
} 

display ( int m ) 
{ 
  printf ( "%d ", m ) ; 
}

5 个答案:

答案 0 :(得分:4)

您需要在使用前定义(或至少声明)任何功能。您可以通过包含包含函数声明(或原型)的标头来实现,或者声明或定义可以直接包含在手头的源文件中。例如:

#include <stdio.h>

void doit() { 
    // call function declared in <stdio.h>
    printf("Function called from main");
}

int main() {
    // call function defined above.
    doit();
    return 0;
}

答案 1 :(得分:2)

确保为函数创建原型,如果它们是全局函数,然后在头文件中对它们进行原型化,然后将此文件包含在C文件中,您希望使用这些函数。

希望这会有所帮助

#include<stdio.h> 

// this is the prototype
void display ( int m );

void main( ) 
{ 
  int i ; 
  int marks[ ] = { 1, 2, 3, 4, 5, 6, 7 } ; 

  for ( i = 0 ; i <= 6 ; i++ ) display ( marks[i] ) ; 
} 

void display ( int m ) 
{ 
  printf ( "%d ", m ) ; 
}

答案 2 :(得分:1)

发布您的代码以便我们为您提供帮助。

在实现main函数之前,需要确保定义了函数。 那就是在主要之前已经知道定义。

以下是一个例子:

#include<stdio.h>

void someFunc()
{
 //define this function
 //notice it is before the main function
}

int main(void)
{
 someFunc();
 return 0;
}

你可以做的另一种方法是在main之前定义函数的协议或签名,然后你应该能够在main之后定义这个函数。

如果这涉及到您可能想要包含在代码中的函数,可能来自某些第三方或库,则需要在文件顶部包含头文件(就像stdio.h头文件一样)我已经进入了我的榜样。

**您的版本编辑**

将您的代码更改为:

#include<stdio.h> 

void display(int m)
{
  printf ( "%d ", m ) ; 
}

int main(void) 
{ 
  int i ; 
  int marks[ ] = { 1, 2, 3, 4, 5, 6, 7 } ; 

  for ( i = 0 ; i <= 6 ; i++ ) display ( marks[i] ) ; 
  return 0;
} 

答案 3 :(得分:1)

只需在main()

上方添加以下代码即可
     void display(int);
     main() {
     // code
     }

答案 4 :(得分:0)

您可能需要在main()的定义之前声明该函数的原型。