每当我使用在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 ) ;
}
答案 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()的定义之前声明该函数的原型。