Uint8 - 缺少类型说明符

时间:2012-06-11 05:06:02

标签: c++ sdl undefined-reference uint

我正在尝试编写一个单例类来保存用户输入的状态(鼠标/键盘数据)。 SDL API将键盘数据作为Uint8指针数组返回,但是,为什么我尝试创建Uint8指针,我在uint8的行中得到这些错误:

error C2143: syntax error : missing ';' before '*'

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

我之前没有使用Uint8作为数据类型,所以我不确定是什么原因引起了这个问题。这是我的代码:

class InputState {
public:

    InputState()
    {};
    ~InputState()
    {};


    static InputState *getInputState(void)
    {
        static InputState *state = new InputState();

        return state;
    };

public:
    Uint8 *keys;

    struct MouseState
    {
        int LeftButtonDown;
        int RightButtonDown;
        int MiddleButtonDown;

        int x;
        int y;

        MouseState ()
        {
            LeftButtonDown = 0;
            RightButtonDown = 0;
            MiddleButtonDown = 0;

            x = 0;
            y = 0;
        }
    };

    MouseState *mouseState;
};

1 个答案:

答案 0 :(得分:1)

类型Uint8是在SDL标头之一中定义的typedef。如果要使用它,则需要在文件中包含SDL.h标题。

// You need this include if you want to use SDL typedefs
#include <SDL.h>

class InputState {
public:

    InputState()
    {};
    ~InputState()
    {};

    // ...

public:
    Uint8 *keys;

    // ...
};