首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“DisplayMenu”的静态声明跟在非静态声明之后

“DisplayMenu”的静态声明跟在非静态声明之后
EN

Stack Overflow用户
提问于 2013-03-15 15:44:43
回答 2查看 2.3K关注 0票数 0

为什么我一直收到这个错误?救救我这是homeowrk。我显然是编程帮助的新手。$ gcc homework.c homework.c:在函数‘main’中: homework.c:32:6: error:‘DisplayMenu’的静态声明跟在非静态声明后面homework.c:11:7:注意:之前的‘DisplayMenu’声明在这里

代码语言:javascript
运行
复制
#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);
}

}
EN

回答 2

Stack Overflow用户

发布于 2013-03-15 16:01:26

在C中,我们没有在任何块中实现函数。相反,应该在全局范围内实现函数。

去掉最右边的括号,把它放在int main(void)switch的末尾之后,就不会再有错误了。

编辑:

首先..我相信上面就是你的源代码编译失败的原因。

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

票数 0
EN

Stack Overflow用户

发布于 2013-03-15 16:01:54

陈鹏宇当然是对的!但!您在这里有另一个错误。

代码语言:javascript
运行
复制
 int choice;
 void DisplayMenu();  // You should not declare a function here.
 scanf("%i", &choice);   

我猜你打算调用这个函数--所以只要去掉行首的"void“即可。

代码语言:javascript
运行
复制
 int choice;
 DisplayMenu();   // Call DisplayMenu
 scanf("%i", &choice);   

还有..。请阅读语言规范

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15427153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档