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