Structs inside #define in C++

Posted by Adam Smith on Stack Overflow See other posts from Stack Overflow or by Adam Smith
Published on 2011-11-21T01:36:20Z Indexed on 2011/11/21 1:52 UTC
Read the original article Hit count: 226

Filed under:
|
|

Being pretty new to C++, I don't quite understand some instructions I encounter such as:

#ifndef BOT_H_
#define BOT_H_

#include "State.h"

/*
    This struct represents your bot in the game of Ants
*/
struct Bot
{
    State state;

    Bot();

    void playGame();    //plays a single game of Ants

    void makeMoves();   //makes moves for a single turn
    void endTurn();     //indicates to the engine that it has made its moves
};

#endif //BOT_H_

What I don't understand is the "#ifndef BOT_H_" and the "#define -- #endif"

From what I gather, it defines a constant BOT_H_ if it's not already defined when the precompiler looks at it. I don't actually get how the struct inside it is a constant and how it is going to let me access the functions inside it.

I also don't see why we're doing it this way? I used C++ a while back and I wasn't using .h files, so it might be something easy I'm missing.

© Stack Overflow or respective owner

Related posts about c++

Related posts about define