如何在C ++中调用用户定义的代码

时间:2017-02-20 06:50:15

标签: c++ c++14 user-defined-functions

我是C ++的新手(不是一般的编程,只是C ++),而且我正在学习使用Pluralsight订阅C ++编程。我正在编写一个练习程序(通过计算机控制台进行的一系列游戏),而且我还在坚持一些事情。在开展Tic-Tac-Toe游戏的过程中,我想称一个我不会每次都重写的板子公式。因此我定义了一组字符串对我有用,但我无法弄清楚如何调用我的用户定义的公式。我不打算发布所有代码,因为它很长,但我会展示你需要的部分(如果一行有" ...."就此而言,意味着我删除了多行代码,使其更适合此网站)。如果你想知道,我正在使用 Microsoft Visual Studio社区2017 RC C ++ 14

HEADER FILE:

#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
using namespace std;

主要文件:

...

#define TTTBoard () \
{ \
    system("cls"); \
    cout << "\n\n                           Let's play Tic-Tac-Toe!\n\n\n"; \
    cout << "                               A       B       C    " << endl; \
    cout << "                            _______________________ " << endl; \
    cout << "                           |       |       |       |" << endl; \
    cout << "                       1   |   " << PlayerSymA1 << "   |   " << PlayerSymB1 << "   |   " << PlayerSymC1 << "   |" << endl; \
    cout << "                           |_______|_______|_______|" << endl; \
    cout << "                           |       |       |       |" << endl; \
    cout << "                       2   |   " << PlayerSymA2 << "   |   " << PlayerSymB2 << "   |   " << PlayerSymC2 << "   |" << endl; \
    cout << "                           |_______|_______|_______|" << endl; \
    cout << "                           |       |       |       |" << endl; \
    cout << "                       3   |   " << PlayerSymA3 << "   |   " << PlayerSymB3 << "   |   " << PlayerSymC3 << "   |" << endl; \
    cout << "                           |_______|_______|_______|" << endl; \
}

...

int main()
{
    //This is where I want to call my TTTBoard formula
}

我试图用多种方式调用它,但没有任何效果。以下是我已经尝试过的。我知道我尝试的一些内容并没有完全合理,但我很生气,我无法让它工作,所以无论如何我都尝试了。

TTTBoard

TTTBoard;

TTTBoard()

TTTBoard();

TTTBoard()
{
}

TTTBoard();
{
}

提前感谢您的帮助!!!

1 个答案:

答案 0 :(得分:4)

预处理器宏不是调用。相反,它们是扩展,意味着插入宏的主体代替宏调用,并替换参数。

所以,如果你有像

这样的宏
#define FOO() { \
    bar();      \
}

然后使用它

int main()
{
    FOO()
}

预处理器创建的内容和编译器看到的是

int main()
{
    { bar(); }
}

上面的例子还展示了如何使用类似函数的宏。

最后,您不需要宏。在像你这样的情况下,使用实际功能更有意义。在现代C ++中,对宏的需求很少。