1

我正在尝试编写一个单例类来保存用户输入的状态(鼠标/键盘数据)。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;
};
4

1 回答 1

1

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

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

class InputState {
public:

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

    // ...

public:
    Uint8 *keys;

    // ...
};
于 2012-06-11T05:14:59.627 回答