C ++函数调用不起作用

时间:2017-06-18 04:39:26

标签: c++ function

在以下代码中: 。返回值可能已关闭, 主要的问题是,我得到一个错误,如果你需要确切的错误只是评论说,我会不会正确调用 在其他功能中还需要什么样的回报

int menu()
{
    system("cls");
    cout << "1 for gamemodes 2 for class editor (class editor not yet   
    made coming soon)" << endl;                           
    system("pause>nul");

    if (GetAsyncKeyState(VK_NUMPAD1))
    {
        gamemodes();
    }
    return 0;
}

int gamemodes()
{
    system("cls");
    cout << "pick a gamemode" << endl;
    cout << "1 for team death match" << endl;
    cout << "rest coming soon!!!!" << endl;
    system("pause>nul");

    if (GetAsyncKeyState(VK_NUMPAD1))
    {
        map_picker();
    }
    return 0;
}

int map_picker()
{
    while (go = true)
    { 
        system("cls");
        cout << "pick a map" << endl;
        cout << "1 for town" << endl;
        system("pause>nul");

        if (GetAsyncKeyState(VK_NUMPAD1))
        {
            town_load();
        }
        return 0;
}

int town_load()
{
    return 0;
}

以下是需要修复的错误:

 'gamemodes': identifier not found,

更新此代码的任何更新都将放在引号中 “如果我要在main之前声明它们,那么它们会在被调用之前执行/被使用”

2 个答案:

答案 0 :(得分:1)

gamemodes中使用之前,您尚未声明main。在main之前添加声明。

int gamemodes();

int main()
{
   ...
}

对OP评论的回应

声明

int gamemodes();

不会导致函数调用。声明允许使用该功能。

该函数将在您的代码块中的main中调用:

if (GetAsyncKeyState(VK_NUMPAD1))
{
   // This is where the function gets called.
   gamemodes();
}

答案 1 :(得分:0)

原始示例中有许多未声明的变量和函数。

当你在main function之后声明一个函数然后尝试在这个main function中使用它时,你需要定义一个函数原型,它声明为一个函数,用于指定函数&#39; s名称和类型签名

所以对于你的代码:

您需要先为函数GetAsyncKeyState或原型添加代码,然后再为该函数添加代码。

与函数int gamemodes()map_picker()

相同

你必须声明go布尔变量和VK_NUMPAD1变量

您还必须添加主要功能

这是一个没有编译错误的代码;但是你必须为你在代码中使用的不同功能添加代码。

#include <iostream>

using namespace std;

int town_load();

int gamemodes();

int VK_NUMPAD1 = 1;

bool go = true;

int map_picker();

int GetAsyncKeyState(int VK_NUMPAD1) {
    return 1;
}

int menu()
{
    system("cls");
    cout << "1 for gamemodes 2 for class editor (class editor not yet made coming soon)" << endl;                           
        system("pause>nul");
    if (GetAsyncKeyState(VK_NUMPAD1))
    {
        gamemodes();
    }
    return 0;
}

int gamemodes()
{
    system("cls");
    cout << "pick a gamemode" << endl;
    cout << "1 for team death match" << endl;
    cout << "rest coming soon!!!!" << endl;
    system("pause>nul");
    if (GetAsyncKeyState(VK_NUMPAD1))
    {
        map_picker();
    }
    return 0;
}

int map_picker()
{
    while (go = true)
    {
        system("cls");
        cout << "pick a map" << endl;
        cout << "1 for town" << endl;
        system("pause>nul");
        if (GetAsyncKeyState(VK_NUMPAD1))
        {
            town_load();
        }
        return 0;
    }
}

int town_load() {
    return 0;
}

int main() {
    return 0;
}