Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 静态声明‘;显示菜单’;遵循非静态声明_C_Static_Defined - Fatal编程技术网

C 静态声明‘;显示菜单’;遵循非静态声明

C 静态声明‘;显示菜单’;遵循非静态声明,c,static,defined,C,Static,Defined,为什么我总是犯这个错误?帮帮我,这是Homerowrk。我显然不熟悉编程帮助。 $gcc家庭作业 c:在函数“main”中: 作业c:32:6:错误:“DisplayMenu”的静态声明跟在非静态声明之后 作业。c:11:7:注:“显示菜单”的先前声明在此 #include <stdio.h> void DisplayMenu(); void numberPlus10(); void numberTimes2(); void numberMinus1(); void numberT

为什么我总是犯这个错误?帮帮我,这是Homerowrk。我显然不熟悉编程帮助。 $gcc家庭作业 c:在函数“main”中: 作业c:32:6:错误:“DisplayMenu”的静态声明跟在非静态声明之后 作业。c:11:7:注:“显示菜单”的先前声明在此

#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);
}

}
#包括
void DisplayMenu();
void numberPlus10();
void numberTimes2();
void numberMinus1();
void numberTimesnumber();
内部主(空)
{
智力选择;
void DisplayMenu();
scanf(“%i”和“选择”);
开关(选择)
{
案例1:
numberPlus10();
打破
案例2:
numberTimes2();
打破
案例3:
numberMinus1();
打破
案例4:
numberTimesnumber();
打破
违约:
打破
}
void DisplayMenu()
{
printf(“1.数字+10\n”);
printf(“2.编号*2\n”);
printf(“3.编号-1\n”);
printf(“4.编号*编号\n”);
}
void numberPlus10()
{
int x;
printf(“请输入一个数字:\n”);
scanf(“%i”和“&x”);
printf(“您的号码+10是%i\n”,x+10);
}
void numberTimes2()
{
int x;
printf(“请输入一个数字:\n”);
scanf(“%i”和“&x”);
printf(“您的编号*2是%i\n”,x*2);
}
void numberMinus1()
{
int x;
printf(“请输入一个数字:\n”);
scanf(“%i”和“&x”);
printf(“您的编号-1是%i\n”,x-1);
}
void numberTimesnumber()
{
int x;
printf(“请输入一个数字:\n”);
scanf(“%i”和“&x”);
printf(“您的数字平方是%i\n”,x*x);
}
}

在C中,我们不在任何块中实现函数。相反,职能应在全球范围内实施

拆下最后一个右支架,并将其放在
int main(void)
中的
开关结束后,这样就不会再有错误了

编辑:

首先。。我确信以上就是您的源代码无法编译的原因


另外,请检查David的答案,因为我们都认为您在打算调用函数时做了函数声明——尽管这个错误没有触发编译时错误。

陈鹏宇当然是对的!但是你还有一个错误

 int choice;
 void DisplayMenu();  // You should not declare a function here.
 scanf("%i", &choice);   
我猜您打算调用这个函数-所以只需从行的开头删除“void”

 int choice;
 DisplayMenu();   // Call DisplayMenu
 scanf("%i", &choice);   

而且。。。请阅读语言规范

不,这不是问题所在<代码>您不能在另一个函数中声明函数。
确实可以。对。但是TS显然打算调用函数而不是声明它。抱歉,但我要指出的是,实际上我还没有检查语言规范,所以我不知道在C的标准中是如何处理的。然而,在
GCC4.7.2
中,在另一个函数中声明函数是合法的,它只声明一种语言。在编译时,它不会生成任何错误(但在链接时,如果您尝试调用该函数,但它在任何地方都没有实现,它会生成任何错误。)哦,是的,这是真的。我没注意到。XD感谢您指出这一点。