C 我的终端只打印主设备的第一个输出
这里是C的初学者,在int one_three()中打印单词“one”和在function()中打印单词“two”时遇到问题 在我的终端上打印的唯一单词是“现在开始”——有人知道为什么会发生这种情况吗 任何帮助都将不胜感激C 我的终端只打印主设备的第一个输出,c,C,这里是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 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;
}
您不调用函数,而是(再次)声明函数
打电话,例如,one\u-three
,然后你就可以了
one_three();
说到函数声明,在C语言中,如果函数不带任何参数,就必须显式地使用
void
作为参数。声明,如
int two();
告诉编译器函数two
返回一个int
,并接受未知数量的未指定参数。正确的声明应该是
int two(void);
您应该像这样更改代码
...
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three();
two();
return 0;
}
...
您在
main()
中再次声明了函数。这就是为什么只打印“现在开始”。您需要从main()
调用该函数,如下所示:
int main(void)
{
// Countdown begins
printf("starting now: ");
printf("\n");
one_three();
two();
return 0;
}
调用函数时,不应声明类型(即char、int或float)。让我解释一些基本知识。 代码中的前两行
int one_three();
int two();
-函数声明或函数原型,告诉编译器在主函数之后有一个函数定义
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函数之前保留函数定义
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;
}
也许在编写代码之前你需要先学习C语法。谢谢你,现在就开始吧!首先检查C语法,并弄清楚它。代码无法获得所需输出的原因是,您已经声明了两次函数,一次在文件头,第二次在main()块末尾。接下来,您继续定义函数。你看到这里少了什么了吗?您已经声明了函数,定义了函数,但没有调用该函数。要调用函数,只需在函数名后面加括号和分号,但前面不要加任何数据类型/访问修饰符等。希望这能有所帮助!