为什么我一直收到这个错误?救救我这是homeowrk。我显然是编程帮助的新手。$ gcc homework.c homework.c:在函数‘main’中: homework.c:32:6: error:‘DisplayMenu’的静态声明跟在非静态声明后面homework.c:11:7:注意:之前的‘DisplayMenu’声明在这里
#include <stdio.h>
void DisplayMenu();
void numberPlus10();
void numberTimes2();
void numberMinus1();
void numberTimesnumber();
int main (void)
{
int choice;
void DisplayMenu();
scanf("%i", &choice);
switch (choice)
{
case 1:
numberPlus10();
break;
case 2:
numberTimes2();
break;
case 3:
numberMinus1();
break;
case 4:
numberTimesnumber();
break;
default:
break;
}
void DisplayMenu()
{
printf("1. Number + 10\n");
printf("2. Number * 2\n");
printf("3. Number - 1\n");
printf("4. Number * Number\n");
}
void numberPlus10()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number + 10 is %i\n", x + 10);
}
void numberTimes2()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number * 2 is %i\n", x * 2);
}
void numberMinus1()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number - 1 is %i\n", x - 1);
}
void numberTimesnumber()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number squared is %i\n", x * x);
}
}
发布于 2013-03-15 16:01:26
在C中,我们没有在任何块中实现函数。相反,应该在全局范围内实现函数。
去掉最右边的括号,把它放在int main(void)
中switch
的末尾之后,就不会再有错误了。
编辑:
首先..我相信上面就是你的源代码编译失败的原因。
另外,请检查David的答案,因为我们都认为您在打算调用函数时声明了一个函数--尽管这个错误并没有触发编译时错误。
发布于 2013-03-15 16:01:54
陈鹏宇当然是对的!但!您在这里有另一个错误。
int choice;
void DisplayMenu(); // You should not declare a function here.
scanf("%i", &choice);
我猜你打算调用这个函数--所以只要去掉行首的"void“即可。
int choice;
DisplayMenu(); // Call DisplayMenu
scanf("%i", &choice);
还有..。请阅读语言规范
https://stackoverflow.com/questions/15427153
复制相似问题