这里是C的入门者,我在int one_three()中打印单词“ one”和在function()中打印单词“ two”时遇到了麻烦。
在我的终端上打印的唯一文字是“从现在开始”-是否有人知道为什么会这样?
任何帮助将不胜感激。
int one_three();
int two();
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
int one_three();
int two();
return 0;
}
int one_three()
{
printf("one");
int two();
return 0;
}
int two()
{
printf("two");
return 0;
}
答案 0 :(得分:3)
您不会调用功能,而声明功能(再次)。
例如致电one_three
然后您完成
one_three();
关于函数声明,在C中,如果函数不接受任何参数,则必须显式使用void
作为参数。诸如
int two();
告诉编译器函数two
返回int
,并接受未知数量的未指定参数。正确的声明应该是
int two(void);
答案 1 :(得分:2)
int one_three();
int two();
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three();
two();
return 0;
}
int one_three()
{
printf("one");
two();
return 0;
}
int two()
{
printf("two");
return 0;
}
在调用函数时,您不应声明类型(即char,int或float)。
答案 2 :(得分:1)
您应该像这样更改代码。
...
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three();
two();
return 0;
}
...
答案 3 :(得分:1)
您已在main()
内再次声明了函数。这就是为什么仅打印“立即开始” 的原因。您需要像这样从main()
调用该函数:
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three();
two();
return 0;
}
答案 4 :(得分:0)
让我向您解释一些基本知识。 代码中的前两行
int one_three();
int two();
-是函数声明或函数原型,它告诉编译器主函数后有一个函数定义。
如果不想使用,可以将函数定义保留在main函数之前。
int one_three()
{
printf("one");
int two();
return 0;
}
int two()
{
printf("two");
return 0;
}
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three(void);
two(void);
return 0;
}
您将在main()中再次声明函数,您需要在其中调用它们。 如果您未传递任何值或引用,则将实际参数传递为 void 。 由于您要从这些函数返回0,因此返回类型为int,就可以了。
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three(void);
two(void);
return 0;
}